2017-02-13 10 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

Linkは、List aタイプの2番目のコンストラクタです。それは、ここで定義されています。タイプList Stringの値を作成するために、2番目のコードスニペットで使用されている

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

+1

おそらくここでGADTの構文が役立つでしょうか? –

関連する問題