2017-02-13 137 views
-1

(从哈斯克尔开胃小点讲座)自定义列表定义

module Part2a where 

    data List α = EndOfList 
       | Link α (List α) 
     deriving Show -- makes printing out results possible 

应用实例:

empty = EndOfList 
oneWord = Link "apple" EndOfList 
twoWords = Link "banana" (Link "cantaloupe" EndOfList) 

问: 在哪里 “链接” 函数的定义?

我到处搜索,找不到它。

回答

8

LinkList a类型的第二个构造函数。在此定义:

data List α = EndOfList 
      | Link α (List α) -- this line defines the Link constructor 

它在你的第二个代码段用于创建List String类型的值。

+1

也许显示GADT语法会有帮助吗? –