Ich lese Learn You a Haskell for Great Good und weiß nie, wie man die Haskell-Operatoren ausspricht. Haben sie "echte" Namen? ?
Wie liest man zum Beispiel einen Ausdruck wie diesen vor?
Just (+3) <*> Just 9
Ich weiß, dass >>=
das "binden" ist, aber was ist mit den anderen? Da Google nicht alphanumerische Zeichen nicht berücksichtigt, ist es schwierig, eine effiziente Suche durchzuführen ...
Mir ist klar, dass Sie Ihre eigenen Operatoren erstellen können, daher können natürlich nicht alle Operatoren Namen haben, aber ich gehe davon aus, dass die gemeinsamen (z. B. die in Applicative
oder definierten Monad
) Namen haben müssen ...
<*>
ausgesprochen?" ? Auch wenn dies nicht der Fall ist, sind die Antworten wahrscheinlich einen Blick wert.()
wird Einheit ausgesprochen. Einmal saß ich vor einem Publikum von ein paar hundert funktionalen Programmierern fest, die nicht wussten, wie man das auf meiner Folie ausspricht.Antworten:
So spreche ich sie aus:
quelle
(.)
"komponieren".(.)
alsof
und($)
alsapplied to
:f . g . h $ x
wird daher gelesenf of g of h applied to x
. Aber ich verstehe Divergenz in dieser Hinsicht!(.)
ist sinnvoller, als "nach" auszusprechen . Die Komposition kann in zwei Richtungen bezeichnet werden, und wenn man sie "nach" nennt, wird sofort erklärt, wie sie auch funktioniert.const 42 . fix id
wir zum Beispiel in wirklich sagen, dassconst 42
eine Endlosschleife "nach" kommt?++
stattdessen "Anhängen" nennenconcat
, da diesconcat
in Haskell bereits eine Sache ist und das Dienstprogramm sehr unterschiedlich ist.quelle
<*
? Wird es so selten verwendet, dass es keinen gemeinsamen Namen hat?Meine persönlichen Favoriten sind "linker Fisch" (<= <) und "rechter Fisch" (> =>) . Welches sind nur die linke und rechte Kleisli Zusammensetzung der Monaden Operatoren. Komponieren Sie fischig, komponieren Sie!
quelle
Ich habe mir erlaubt, die Antworten zu einem sehr einfachen Haskell-Programm zusammenzufassen, das nur durch Mustervergleich versucht, Haskell-Code ins Englische zu übersetzen. Ich nenne es,
letterator
weil es Symbole in Buchstaben übersetztquelle
quelle
<*>
,>>
...