Haskell: различия между версиями

Строка 130: Строка 130:
<pre>
<pre>
fac n = do cont <- callCC $ \h -> do
fac n = do cont <- callCC $ \h -> do
                   case n of
                   when (n <= 1) (Cont $ \_ -> 1)
                      0 -> Cont $ \_ -> 1
                  h n
                      _ -> h n
           return cont
           return cont
   `runCont` (* (fac $ n - 1));
   `runCont` (* (fac $ n - 1));