Комментарии 17
Да, язык действительно странный:)
Очевидно что там действиьельно много интересного, но для практического применения все это нужно вытаскивать и адаптировать.
Очевидно что там действиьельно много интересного, но для практического применения все это нужно вытаскивать и адаптировать.
0
Основной смысл приведенных примеров в том, что в языке реализующем удобную работу с лямбда исчислением можно все операции свести к вызову функций. Вот еще интересная статья на хабре на эту тему Чисто функциональные структуры данных
0
Я говорю о том, что все это безусловно интересно и полезно только теоретически, для математики. А в реальной жизни вы будете кодировать цифры палочками и вычислять факториал десяти с помощью 4 миллионов лямбд?
В академических функциональных языках есть немало интересных концепций, которые многим «обычным» программистам даже и не понять. Но их нужно вытаскивать оттуда и адаптировать для классического кодинга. А не то получится очередной оберон, вещь в себе:)
В академических функциональных языках есть немало интересных концепций, которые многим «обычным» программистам даже и не понять. Но их нужно вытаскивать оттуда и адаптировать для классического кодинга. А не то получится очередной оберон, вещь в себе:)
+1
Ну вот в порядке фантастического бреда можно набросать такую концепцию, которая идеально ложится под функциональное программирование…
Итак :) Когда-то, помимо цифровых ЭВМ существовали аналоговые, которые, по тем временам, позволяли смоделировать некоторые процессы быстрее и точнее чем в цифре. Потом то цифра их превзошла количеством операций за единицу времени, но не суть… Просто аналоговые машины функционировали так сказать в непрерывном потоке, в отличии от цифровых с их статичным промежуточным состоянием. Это раз.
В те же былинные времена существовали ЭВМ реализованные не на двоичной, а на троичной элементной базе. Тут могу соврать, не разбирался точно, но вроде там все кодировалось не напряжением, а направлением и отсутствием тока… Главное, что процессы тоже все были непрерывные. Это два.
Так вот, функциональная программа, где структуры данных реализованы как функции, тоже работает непрерывно, без явных точек останова с фиксацией состояния. Т.е. функциональная программа идеально ложится на аналогово-троичную ЭВМ! ;)
Осталось только такую изобрести и функциональщина тут же станет мэйнстримом! ;)
Итак :) Когда-то, помимо цифровых ЭВМ существовали аналоговые, которые, по тем временам, позволяли смоделировать некоторые процессы быстрее и точнее чем в цифре. Потом то цифра их превзошла количеством операций за единицу времени, но не суть… Просто аналоговые машины функционировали так сказать в непрерывном потоке, в отличии от цифровых с их статичным промежуточным состоянием. Это раз.
В те же былинные времена существовали ЭВМ реализованные не на двоичной, а на троичной элементной базе. Тут могу соврать, не разбирался точно, но вроде там все кодировалось не напряжением, а направлением и отсутствием тока… Главное, что процессы тоже все были непрерывные. Это два.
Так вот, функциональная программа, где структуры данных реализованы как функции, тоже работает непрерывно, без явных точек останова с фиксацией состояния. Т.е. функциональная программа идеально ложится на аналогово-троичную ЭВМ! ;)
Осталось только такую изобрести и функциональщина тут же станет мэйнстримом! ;)
0
Потом останется изобрести алгоритмы, данные которых всегда влезают в кеш. И функциональные структуры данных, которые не persistent, потому что их быстродействие пока многих не радует. А так то да, потом точно )
0
В догонку… Вот еще интересная статья на эту тему Функциональное программирование в Scheme: структуры данных А вот незаконченный перевод целой книжки Русский перевод книги Криса Окасаки «Чисто функциональные структуры данных».
Вот они то совсем мозг разрывают :)
Вот они то совсем мозг разрывают :)
0
Вот бы кто статьи на русской Википедии допилил…
0
Напомнило вот эту замечательную статью о лямбде в Javascript:
habrahabr.ru/post/248331
habrahabr.ru/post/248331
0
очень похоже на обратную польскую нотацию, только в другую сторону
Имеется ввиду «польская нотация»?
Имеется ввиду «польская нотация»?
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
λ-исчисление и LISP