簡體   English   中英

如何使用自定義列表實現編寫嵌套列表列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM