| Aa | Aa |
|
#haskell #приколыНашегоГородка
Этот код написан математиком, почему я так решил? Да потому, что почти все нормальные программисты при написании кода придерживаются ASCI, разве что в комментариях иногда могут быть фразы на родном языке :) а здесь мы видим такие символы как "∀", "π", "σ", "τ", "α", "β", "φ", "⇒", "→", "∷", "∘", "⊕"... Вот зачем? По поводу кодировки-то ладно, utf8 - стандарт для хаскельного файла, но это же банально неудобно набирать с клавиатуры! 23 апреля 2017
|
|
Mikie Онлайн
|
|
|
если что, то вот
https://github.com/roelvandijk/base-unicode-symbols Мне не очень нравится дефолтный ∘, потому что я не любитель писать g . f $ ..., я кажется уже говорил, что больше люблю сказать что-нибудь типа (&) x f = f x и писать x & f & g & h Или даже так: x ∘ f ∘ g ∘ h |
|
|
Mikie Онлайн
|
|
|
А ещё вместо
h . g . f <$> x предпочитаю x \\\\ f \\\\ g \\\\ h где (\\\\) x f = f <&> x |
|
|
Ластро
|
|
|
Это всё хорошо, но есть один нюанс. Наш код, потом, скорее всего, будет читать кто-то ещё, а это намекает, что нужно придерживаться общепринятого стиля.
|
|
|
Mikie Онлайн
|
|
|
Я обычно свой код никуда не выкладываю:)
С пониманием через полгода проблем нет, потому что это нотация из Wolfram Mathematica, которой пользуюсь очень часто. Масса обозначений и операторов тянутся из тёмного прошлого и они далеко не всегда удобны. Вообще нужно будет попробовать использовать тут линзы, точнее их синтаксис. |
|
|
Mikie Онлайн
|
|
|
Но вообще это довольно старая война, как лучше писать композицию - влево или вправо.
В хаскеле вот победило вправо, и это меня расстраивает. |
|
|
Ластро
|
|
|
Mikie, а вот не нужно. Есть же такие функции как (>>=) и (>>) :)
|
|
|
Mikie Онлайн
|
|
|
Вот странно. Для обычных функций победило вправо, а для стрелок Клейсли влево. И после этого я должен верить рассказам евангелистов хаскеля о его крутом дизайне?:)
Я конечно могу всё заворачивать в Id, но это будет многословно и очень некрасиво. |
|
|
Mikie Онлайн
|
|
|
Чёрт. Я перепутал право и лево.
|
|
|
Ластро
|
|
|
Стрелки Клейсли были побеждены do-нотацией :) Да и есть же ещё =<< и << :)
|
|
|
Ластро
|
|
|
Mikie, бывает.
|
|
|
Mikie Онлайн
|
|
|
Не побеждены, а обёрнуты. То есть их побеждать как бы и не надо.
Совершенно естественно писать цепочку преобразований слева направо. Это тяжёлое наследие математики, где нужно писать g(f(x)), но если там это можно понять, то если мы говорим о программировании, это выглядит как вывих мозга, который ничего нового или полезного нам на самом деле не дает. "Тут так принято." =<< и << - Это вообще хтоническое зло! Но, как я уже сказал, это старая война и ты правильно делаешь, что не ведешься на мои вбросы:) |
|
|
Ластро
|
|
|
Mikie, я просто в ней не участвую :) и даже не наблюдаю :)
|
|
|
Mikie Онлайн
|
|
|
¯\\(ツ)/¯
Суслика видишь? А он есть! Мне кажется, нужно не бояться неуниверсальности. Когда ты контрибутишь куда-то, это одно. А когда ты строишь свою вселенную, свой язык, нужно максимально забить на несовместимость. Это же для души. И пока ты понимаешь свои построения, всё хорошо. |
|
|
Ластро
|
|
|
Mikie
Но я-то по возможности стараюсь оставлять совместимость! Просто потому, что пользуюсь созданной другими инфраструктурой. |
|
|
Mikie Онлайн
|
|
|
Ну ок, это ты. Я так не делаю, потому что если я подключаю чужие библиотеки, я не обязан оперировать ровно теми же функциями и типами, что экспортируют модули. Я могу строить своё. И обычно строю, каким бы чуждым оно кому-нибудь не показалось. Обычно это затрагивает и стиль кода, да. Мне пока не сложно говорить на двух языках: общем и своём. (может это потому, что я мало говорю на первом:)
Если вернуться к сабжу, то можно отметить, что использование юникодовых мнемоник сохраняет и совместимость, и читабельность. В конце-концов, всегда можно регекспами пройтись по исходникам:) |
|
|
Marlagram Онлайн
|
|
|
А может (хотя и так маловероятно, эх) там были технические возможности, а?
|
|
|
Mikie Онлайн
|
|
|
Емаксеры и вимеры смотрят с недоумением.
|
|
|
Ластро
|
|
|
Marlagram, однако, разные бывают извращения.
|
|
|
Mikie Онлайн
|
|
|
Всё есть лисп. И немножко перл. Остальное - извращения.
|
|