[英]How do I write a nested list of lists with my custom list implementation?
我想知道我對列表的定義是否不如常規實現那么強大。 我在創建具有以下定義的列表列表時遇到問題:
data List a =
Nil
| Cons a (List a)
deriving (Eq, Ord, Show)
我沒有看到如何使用列表的定義創建像[[2],[3]]
的列表。
嵌套列表的最簡單實例就是[[]]
,我想可以用Cons Nil Nil
重新創建。 嵌套列表的第二個最簡單的實例是[[1]]
。 這是Cons (Cons 1 Nil) Nil
無效。
但是,就像我說的,看不到如何使用上面的定義創建列表[[2],[3]]
。 我該怎么做? (這應該是可能的,因為一個練習要求我為上面的列表定義創建一個monad實例)。
首先考慮一下,您將如何表達[x,y]
?
Cons x (Cons y Nil)
現在放入x = [2]
:
Cons (Cons 2 Nil) (Cons y Nil)
且y = [3]
:
Cons (Cons 2 Nil) (Cons (Cons 3 Nil) Nil)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.