Pull to refresh

Comments 7

Не понял пример 4, а если так, то она станет оператором?

(!#$%&*+./<=>?@\^|-~:) :: Int -> Int -> (Int -> Int) -- Функция с тремя параметрами
(!#$%&*+./<=>?@\^|-~:) a b = \c -> a + b + c

Я полагаю, что нет, т.к. по своей сути это будет частичное применение функции, обозначенной в примере 4.
Вот как раз те, кто использует такие нечитаемые символьные имена в коде, и отпугивает разработчиков от изучения Haskell.
Пообщавшись на stackoverflow.com/ я понял, что моё определение понятия оператора оказалось не совсем верным. В свете этого я внёс исправления в исходный материал заметки.
Есть ещё расширение UnicodeSyntax, и base-unicode-symbols, и можно писать так:
foo ∷ Functor f ⇒ (b → c) → (a → b) → f a → f c
foo f g = fmap (f ∘ g)

Я лично ввожу их в SublimeText с дополнением UnicodeMath
Спасибо, очень полезная информация!
Sign up to leave a comment.

Articles