2010-08-08 7 views

Antwort

12

Denken Sie an pure als ein Adjektiv.

foo <*> pure 4 = foo auf einem 4reinen Wert angewendet.

(Was den genauen Grund warum es pure, wahrscheinlich nur McBride und Paterson genannt wissen.)

+1

Danke. Ich habe mich über das * warum * gewundert, aber wenn ich dich richtig verstehe, ist das ziemlich willkürlich. –

6

Es ist ein wenig wie fromInteger. Sein Argument ist immer ein reiner Wert oder eine Funktion, die in den Funktor gehoben wird. Vielleicht sollte es fromPure gewesen sein, aber Sie wissen, wie Haskell Leute lieben, Namen zu kürzen (z. B. und snd anstelle von first und second ...).

+0

Beachten Sie, dass 'first' und' second' auch Funktionen in 'Control.Arrow' sind. Ich bin mir ziemlich sicher, dass sie später kamen. –

+1

Hmm. Ich dachte, 'fst' und' snd' kämen von ML, aber das beruht nur auf der Tatsache, dass ML älter ist als Haskell. Eine schnelle Suche offenbart ein Papier ["ML unter Unix auf der VAX"] (http://lucacardelli.name/Papers/MLUnix.pdf), das aus der Mitte der 80er Jahre zu sein scheint (es zitiert keine Referenzen neuer als 1983, und erklärt, wie man ML von einem Band installiert). Das Papier verwendet 'fst' und' snd', also sieht es so aus, als wäre meine Annahme nicht zu weit weg. –

+1

'fst' und' snd' sind in Haskell gewesen, seit ich anfing, die Sprache zu benutzen (1992) und Hughes Papiereinführungspfeile im Jahr 2000 herauskamen. Ich würde die Pfeilfunktionen 'onFirst' und' onSecond' nennen, denke ich. – yatima2975

Verwandte Themen