Monad, Currying: Mir unklare Informatikbegriffe
Mittwoch, 7. März 2012
ein beispiel @currying:
man hat eine funktion
(+) a b = a + b
ich kann jetzt mittels currying eine weitere funktion definieren der ich zb nur mehr ein argument übergeben muss (partial application)
plus1 = (+) 1
plus1 41 ergibt dann 42
currying bedeutet auch, dass jeder funktion nur ein argument übergeben werden kann, aber dieses argument kann wieder selbst eine funktion sein die ein argument übernimmt...
@grausame syntax: ein haskell programm liest sich mit ein bisschen übung sogar einfacher als sonstiger code, wobei das oben dargestellte snippet vl nicht als einführungsbeispiel dienen kann... ;), aber das ist natürlich geschmacksache
@monade ja du hast recht, dies lasst sich wirklich nicht so einfach in worte fassen, allerdings ist die verwendung solcher in zb haskell schon sinnvoll^^
Simon Peyton Jones once commented that the biggest mistake Haskell made was to call them “monads” instead of “warm, fluffy things”.
was mich allerdings wundert ist das solche doch recht "praxisfremden" dinge wie zb funktionale programmierung häufig in hackernews vorkommt. auf welchen feeds liest du das?
lg simon
Ich glaube, currying ist wirklich klar
>aber dieses argument kann wieder selbst eine funktion sein die ein argument übernimmt...
Genau so wollte ich das beschrieben haben.
>auf welchen feeds liest du das?
Hackernews gehört zu den wenigen Seiten, die ich tatsächlich nicht im Feedreader lese (und daher keinen speziellen Feed). Es ist wieder weniger geworden, aber eine zeitlang waren da recht regelmäßig Artikel zu funktionaler Programmierung auf der Hauptseite zu finden, zumindest ist mir das ein paarmal aufgefallen. Die Suche findet auch noch recht viel zu den beiden Begriffen, mehr zu Monads.
Zur Haskellsyntax: Man kann sich sicher an viel gewöhnen.
(funktionsname) :: parameter_0 -> ... -> parameter_n -> rückgabetyp finde ich erstmal arg implizit. Aber über Sprachen zu streiten lohnt sich nicht, es ist viel wichtiger was man mit anfängt.


