foo a = a + 1
a = 1b = "text"c = True
foo = \a -> a + 1
Ahoj.Mějme funkci (třeba v Haskellu):Kód: [Vybrat]foo a = a + 1Existuje nějaký zajímavý důvod, proč je ten argument před rovnítkem?Mám totiž takovouto úvahu:Pokud symbolu přiřazuju hodnotu:Kód: [Vybrat]a = 1b = "text"c = Truetak v případě funkce přiřazuju lambdu:Kód: [Vybrat]foo = \a -> a + 1Díky za odpovědi.
Ja sa pridam otazkou, ako sa robi nad definiciami funkcie cez lambdu pattern matching?(To '=' mi tiez prijde, ze je to len na zmatenie nepriatela, ale haskellisti budu mat asi dobry dovod na takyto syntakticky cukor)
\x -> case x of ..
\case 1 -> ... 2 -> ...
Existuje nějaký zajímavý důvod, proč je ten argument před rovnítkem?
f(x) = x + 1
((.)(.) :: (have'' -> boobs'') -> (in' -> haskell'))
Citace: balki 11. 07. 2018, 06:45:05Ja sa pridam otazkou, ako sa robi nad definiciami funkcie cez lambdu pattern matching?(To '=' mi tiez prijde, ze je to len na zmatenie nepriatela, ale haskellisti budu mat asi dobry dovod na takyto syntakticky cukor)buď Kód: [Vybrat] \x -> case x of .. a nebo s -XLambdaCaseKód: [Vybrat]\case 1 -> ... 2 -> ...
Haskellovsky program je reseni soustavy rovnic. Prava a leva strana rovnice, to je podle me klic k vysvetleni.
ale fakt bych nechtěl muset psát tím druhým způsobem
Citace: v 11. 07. 2018, 07:56:30ale fakt bych nechtěl muset psát tím druhým způsobemProč?
Citace: BoneFlute 11. 07. 2018, 14:58:40Citace: v 11. 07. 2018, 07:56:30ale fakt bych nechtěl muset psát tím druhým způsobemProč?pohodlí - bylo by to delší, ošklivější a pattern matching na více argumentech by byl takový divný
foo x = x + 1
foo = x -> x + 1
foo (x:xs) = [(x + 1) : (foo xs)]
foo = (x:xs) -> [(x + 1) : (foo xs)]
f (x:xs) (y:ys) = ...f _ _ = ...
f = \a b -> case (a, b) of ...