zip書く(5章時点の知識で)
code:hs
main :: IO ()
myZip :: a -> b -> (a, b)
myZip xs ys = map (\n -> (xs !! n, ys !! n)) 0 .. (limit - 1)
where
limit = min (length xs) (length ys)
main = do
print (myZip 10 .. 30 0 .. 9)
code:sh
runghc main.hs
(10,0),(11,1),(12,2),(13,3),(14,4),(15,5),(16,6),(17,7),(18,8),(19,9)
これだと myZip xs [0 ..]ってした時に処理が終わらなかったので、なんか遅延評価的なやつができてない模様kazuhi-ra.icon