, case case Haskell [1]. , " ":
doubleMe(doubleMe([1,2,3]))
, . Haskell [1]. , (), , - case, . , case?
case doubleMe (doubleMe [1,2,3]) of
[] -> ...
x : xs -> ... x ... xs ...
. , ( desugaring case)
case (case doubleMe [1,2,3] of
[] -> []
x:xs -> (2*x) : doubleMe xs)
) of
[] -> ...
x : xs -> ... x ... xs ...
,
case (case (case [1,2,3] of
[] -> []
x:xs -> (2*x) : doubleMe xs
) of
[] -> []
x:xs -> (2*x) : doubleMe xs)
) of
[] -> ...
x : xs -> ... x ... xs ...
case. , : : 1 xs [2,3].
case (case ((2*1) : doubleMe [2,3]
) of
[] -> []
x:xs -> (2*x) : doubleMe xs)
) of
[] -> ...
x : xs -> ... x ... xs ...
case , ( :) x (2*1) xs doubleMe [2,3].
case ((2*(2*1)) : doubleMe (doubleMe [2,3]))
) of
[] -> ...
x : xs -> ... x ... xs ...
, , case
... (2*(2*1)) ... doubleMe (doubleMe [2,3])) ...
, (2*(2*1)) doubleMe (doubleMe [2,3])). , - case, , .
[1] , Haskell. , Haskell -, , , .