是否有类似ml的语言(标准ml/ocaml/f#/ haskell/etc),其中列表元素是选项类型

Rom*_*her 1 null haskell functional-programming list ml

在我看来像[](空列表)和无/没有什么是如此相似.我想知道这个语言系列中是否有任何一种基本列表类型,其中每个元素都是一个选项,尾部守卫是什么?

是(这种方式不是这样,在具有不同类型的语言中)因为它会使模式匹配列表过于冗长吗?

ham*_*mar 5

你在Lisp中有类似的东西,nil用于表示缺少可选值和空列表.你可以在Haskell中做这样的事情(我假设大多数类似ML的语言),

newtype MyList a = MyList (Maybe (a, MyList a))
Run Code Online (Sandbox Code Playgroud)

但它更冗长,并且与使用自己的数据类型相比没有任何明显的好处.