我一直在尋找一些Haskell的源代碼,並與!_跨越模式匹配來了,代碼是在這裏:http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.List.html#unsafeTake take n xs | 0 < n = unsafeTake n xs
| otherwise = []
-- A version of
我創建了以下Haskell的主要功能(ghci中內)嚴格: let pi :: Int -> Int -> Int;
pi 1 _ = 2;
pi x y = if all (/=0) (map (rem y) [pi z 2| z <- [1..(x-1)]]) then y else pi x (y+1);
請不要介意秒/ memoized參數(它應該始終在2開出)。 當然,正如預期的
所以,Haskell seq函數強制評估它的第一個參數並返回第三個參數。因此它是一箇中綴操作符。如果你想強制對錶達式進行評估,直覺上這樣的特徵將是一元運算符。所以,與其 seq :: a -> b -> b
這將是 seq :: a -> a
因此,如果你想要的值是a,爲什麼返回b,你如何構建的b回報。顯然,我沒有想到Haskell。 :)