(Untitled)

Sep 13, 2015 14:21

Читая обсуждение http://ivan-gandhi.livejournal.com/3329246.html и ответы на мой коммент, я вдруг понял почему так тяжело идет. У меня нет никаких проблем барабанить на Erlang'е например, а Purescript, Elm или их идейный отэц Haskell (ну или ML) идет с гораздо большим трудом ( Read more... )

sd, fp

Leave a comment

Comments 91

soonts September 13 2015, 23:37:10 UTC
Мне почему-то кажется, что функциональные языки не очень нужны.
Те куски из них, которые нужны - лямбды там и хвостовые рекурсии - нынче есть практически во всех относительно современных языках, и в С++, и в Java, не говоря уж про C#.
Вот тут неплохой ответ, рассказывающий почему.

Если вы этим занимаетесь только для самообразования или фана, рекомендую купить условный GeForce 9[5678]0 и попробовать CUDA.
IMO намного интереснее с точки зрения программиста.

Reply

kika September 14 2015, 00:09:29 UTC
Не-не, алгебра типов - это отдельный и очень полезный (если освоить) аттракцион. Если этим инструментом овладеть, то программа практически пишется сама и массы ошибок в ней просто невозможно сделать.

CUDA - это как раз вот железячное хакерство но уже в 21ом веке. Я и на SSE ассемблере писал.

Reply

soonts September 14 2015, 03:20:20 UTC
>то программа практически пишется сама
Во-первых, очень узкий класс программ.
Во-вторых, написать мало, нужно ещё отладить, поддерживать и развивать.

>железячное хакерство но уже в 21ом веке
На первый взгляд обычный C-подобный язык.
Если приглядеться и попытаться сделать что-то хоть немного нетривиальное, станет видно, что модель исполнения кардинально отличается от всего, что было до GPU, и от ассемблера, и от джавы, и от хаскеля этого вашего.

>Я и на SSE ассемблере писал.
Я тоже, и на ассемблере, и позже на SSE интринсиках. Совсем не похоже.

Reply

plumqqz September 14 2015, 08:25:42 UTC
Если этим инструментом овладеть, то программа практически пишется сама и массы ошибок в ней просто невозможно сделать
Счастливый вы человек. Я тут налетел на ситуацию, когда у юзеров есть сепулькарии, а у сепулькариев - сепульки. Сепулькарии и сепульки мы юзерам раздавали сами и решили, что каждому юзеру навечно свой сепулькарий, а каждому сепулькарию - навечно свои, индивидуальные сепульки. Долго ли, коротко ли, но пришлось добавлять сторонних юзеров с сепулькариями, про которых нас уверили в соблюдении того же принципа.
Только после месячной половой еппли с финотчетами выяснилось, что в выданных данных иные сепулькарии могли побывать в руках нескольких юзеров; ну и с сепульками была та же херня.
Я вот смотрю на вас со стрелками и думаю - блаженны мужи, питающиеся радугой; блаженны эльфы, росы лун полночных вкушающие, блаженны нищие духом, ибо их есть царствие небесное.

Reply


ex_juan_gan September 14 2015, 01:50:28 UTC
Вот на форте такой бред не получится; так углы срезать только так.

Reply


permea_kra September 14 2015, 03:10:22 UTC
Поглядите Abstract Computing Machines: A Lambda Calculus Perspective. Это даст альтернативный взгляд, от тех же машин. Потом заполировать Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-machine\

Что касается стрелок, то многие их разновидности как раз отлично ложаться на стековую машину в стиле форта.

Reply

kika September 14 2015, 05:18:36 UTC
Спасибо, выглядит с первого взгляда перспективно

Reply


alamar September 14 2015, 06:15:17 UTC
List comprehensions в чистом виде упражнения на монаде List.

А монада Maybe - в чистом виде функция с множеством выходов.

Reply

kika September 14 2015, 06:39:58 UTC
Для меня в этом тексте слово "монада" совершенно лишнее. И поэтому от частного к общему я перехожу с большим трудом.

И Maybe я воспринимаю никак не как какую-то непонятную монаду, а как union из Nothing и другого union из всех остальных типов (то есть Just).

Reply

lionet September 14 2015, 08:08:11 UTC
Maybe - это простой тип. А монадой он становится только тогда, когда для него описывают монадическое поведение (через instance Monad Maybe ...). Которое может быть разным, но для Maybe не так много их можно придумать _полезных_. Поэтому иногда и говорят, что Maybe-это монада. Хотя на самом деле правильнее говорить, что для Maybe определена монада.

Проблема в том, что в хаскеле только одну монаду можно определить для типа. Вернее, монад сколько хочешь можно определить, но только одна будет первоклассной - подержанной синтаксическим сахаром, всеми подпорками из Control.Monad, и так далее.

Reply

alamar September 14 2015, 10:57:34 UTC
К общему "объект" ведь удалось перейти?

Reply


_xacid_ September 14 2015, 07:34:05 UTC
что да то да
я сам пока на стадии наморщеного лба при попытке понять как сделать то что мне кажется я хочу
но это просто нереальный кайф когда на следующий день вдруг всё получилось))

Reply


Leave a comment

Up