Operator :))

Sep 16, 2019 18:14

Сегодня на работе писал очень веселый код - со смайликами!

...
mergeTypes t1 (t2:ts) = (t2 :) <$> mergeTypes t1 ts
...
fs <- mapM (\(fld, ty) -> silly ty <&> (Str (fld ++" : ") :)) $ M.assocs row
...

Много ли языков их используют?

haskell

Leave a comment

Comments 28

nealar September 16 2019, 17:23:45 UTC
(.) . (.)

ага

Reply


swizard September 16 2019, 17:50:55 UTC
Если я скажу, что любой смайлик - это валидный код на J, скорее всего, я не ошибусь :)

Reply

theiced September 16 2019, 20:41:41 UTC
и на скале

Reply


bvlb September 16 2019, 20:19:53 UTC
=)))

По-моему, по этому коду есть песня: https://youtu.be/wI66XSmyqwI?t=34

Reply

thedeemon September 16 2019, 21:55:28 UTC
Да, именно так он и читается. :)

Reply


avnik September 16 2019, 23:23:22 UTC
Забавно и функция silly тоже ;)
(я правда такое заказчикам избегал-с, вдруг у кого-то чувство юмора сфейлит)

Reply

thedeemon September 17 2019, 09:23:49 UTC
У нас тут есть язык SIL - Symmetry Integration Language. Это от него прилагательное. А код этот в исследовательском прототипе, ему далеко не идти.

Reply


rdia September 19 2019, 03:00:27 UTC
Камл, всё-таки, сильно дубовее и читаемее...

Reply

thedeemon September 19 2019, 08:55:18 UTC
Да, и еще в нем многие ужимки и прыжки просто не пригодились бы - добавление в какую-то вызываемую функцию возможность бросить исключение, например, не заставляет переделывать весь использующий ее код на монадные рельсы. У меня сейчас самое большое недовольство хаскелем как раз в том, что чистый код и код с эффектами выглядят сильно неодинаково, добавление эффекта заставляет код переделывать. В идеале было бы достаточно отразить эффект в типах, а тело ф-й не менять.

Reply

rdia September 19 2019, 14:58:19 UTC
А как вы относитесь к алгебраическим эффектам? Оно не может частично решить проблему?

Reply

thedeemon September 20 2019, 08:54:36 UTC
Пока не знаю, надо поиграться в разных языках.
Как в Идрисе было с библиотекой Effects - мне понравилось. Там как бы все в одной монаде, и только в ее параметрах меняется список эффектов.

Reply


Leave a comment

Up