【发布时间】:2017-05-19 02:34:05
【问题描述】:
我有一个我认为相当棘手的问题。
标准前奏包含功能
replicate :: Int -> a -> [a]以下似乎是一个合理的定义
replicate n x = take n [x,x,..]但实际上还不够。为什么不呢?
我知道replicate函数定义为:
replicate :: Int -> a -> [a]
replicate n x = take n (repeat x)
而repeat定义为:
repeat :: a -> [a]
repeat x = xs where xs = x:xs
定义是否不足(来自问题),因为它使用了无限列表?
【问题讨论】:
-
您是否尝试编译建议的定义?编译器可能会告诉你为什么会有问题。 (顺便说一句,您应该复制问题中的文字,并避免使用图片。)
标签: haskell