Pull to refresh

Comments 17

Да, язык действительно странный:)
Очевидно что там действиьельно много интересного, но для практического применения все это нужно вытаскивать и адаптировать.
NeoCode, многие принципы используются в функциональных языках программирования. Это примерно как с теорией категорий: сам раздел математики очень сложный, но монады и моноиды всплывают то тут, то там.
Так о чем и речь:) Нужно продраться через все эти скобочки и вытащить наружу ценные идеи, трансформировав их в понятный для большинства и удобный для практического применения вид — те же лямбда-функции в гибридных языках как я понимаю именно оттуда.
Так ценные идеи надо искать не в синтаксисе.
Тогда и не надо будет продираться сквозь скобочки. И трансформации будут не нужны.
Зрите в корень так сказать.
Я именно об этом и говорю
Основной смысл приведенных примеров в том, что в языке реализующем удобную работу с лямбда исчислением можно все операции свести к вызову функций. Вот еще интересная статья на хабре на эту тему Чисто функциональные структуры данных
Я говорю о том, что все это безусловно интересно и полезно только теоретически, для математики. А в реальной жизни вы будете кодировать цифры палочками и вычислять факториал десяти с помощью 4 миллионов лямбд?
В академических функциональных языках есть немало интересных концепций, которые многим «обычным» программистам даже и не понять. Но их нужно вытаскивать оттуда и адаптировать для классического кодинга. А не то получится очередной оберон, вещь в себе:)
Ну вот в порядке фантастического бреда можно набросать такую концепцию, которая идеально ложится под функциональное программирование…
Итак :) Когда-то, помимо цифровых ЭВМ существовали аналоговые, которые, по тем временам, позволяли смоделировать некоторые процессы быстрее и точнее чем в цифре. Потом то цифра их превзошла количеством операций за единицу времени, но не суть… Просто аналоговые машины функционировали так сказать в непрерывном потоке, в отличии от цифровых с их статичным промежуточным состоянием. Это раз.
В те же былинные времена существовали ЭВМ реализованные не на двоичной, а на троичной элементной базе. Тут могу соврать, не разбирался точно, но вроде там все кодировалось не напряжением, а направлением и отсутствием тока… Главное, что процессы тоже все были непрерывные. Это два.
Так вот, функциональная программа, где структуры данных реализованы как функции, тоже работает непрерывно, без явных точек останова с фиксацией состояния. Т.е. функциональная программа идеально ложится на аналогово-троичную ЭВМ! ;)
Осталось только такую изобрести и функциональщина тут же станет мэйнстримом! ;)
Потом останется изобрести алгоритмы, данные которых всегда влезают в кеш. И функциональные структуры данных, которые не persistent, потому что их быстродействие пока многих не радует. А так то да, потом точно )
В догонку… Вот еще интересная статья на эту тему Функциональное программирование в Scheme: структуры данных А вот незаконченный перевод целой книжки Русский перевод книги Криса Окасаки «Чисто функциональные структуры данных».
Вот они то совсем мозг разрывают :)
Вот бы кто статьи на русской Википедии допилил…
Да, статьи действительно очень похожие. Но я честно статью с яваскриптом не видел.
Простите, но это не было упрёком, даже может быть наоборот! Языки же разные, не вижу ничего плохого. Просто оставил ссылку для других любопытствующих хабражителей (я вот например JS знаю, а LISP нет).
очень похоже на обратную польскую нотацию, только в другую сторону
Имеется ввиду «польская нотация»?
Точно, есть и такая. Я знал только про обратную. Сейчас исправлю, спасибо.
Действительно если есть «обратная» нотация, то почему-бы не быть обычной.
Sign up to leave a comment.

Articles