Haskell Hero
Interaktivní učebnice pro začínající Haskellisty
|
curry, uncurryÚvodem
Víme, že existují binární funkce. Například
Vidíme, že funkce
Jelikož jsou obě funkce jednoduše definovatelné, nedělá nám problém je definovat nezávisle na sobě. Někdy je ale výhodnější použít právě funkci curry
Funkce Definice
curry :: ((a,b) -> c) -> a -> b -> c curry f x y = f (x,y) Příklady
curry fst 5 True ~> fst (5,True) ~> 5 curry snd 'y' "bbb" ~> snd ('y',"bbb") ~> "bbb" uncurry
Funkce
Funkce Definice
uncurry :: (a -> b -> c) -> (a,b) -> c uncurry f (x,y) = f x y Příklady
uncurry const (False,8) ~> const False 8 ~> False uncurry (flip const) ("ccc",'a') ~> flip const "ccc" 'a' ~> const 'a' "ccc" ~> 'a' |