3

データ型の定義に応じて質問があります。定義に記号や数字を使用することは可能ですか?たとえば、下等号のデータ型を作成したい場合は、もちろん次のコードが機能します

data Signs = Lo | Eq

コンストラクターLoは「<」を表し、コンストラクターEqは「=」です。

しかし、私は「本物の」サインを使うことができません。たとえば、次のコードは機能しません

data Signs = Lo "<" | Eq "=" 
type Signs = "<" | "="
type MyInt = '1' | '2'
data MyInt = One '1' | Two '2'

したがって、定義内で「実際の」記号と数字を使用する可能性があるかどうかを知りたいと思います。そして、もしあれば、それがどのように機能するかを教えていただければ幸いです。;)

4

1 に答える 1

2

接頭辞が付いた演算子識別子:は、データ コンストラクターで使用できます。

data Signs = (:<) | (:=)

それらがnullaryである場合、AFAIKは括弧を保持する必要があります:

[(:<), (:=)]

数字を使用できますが、最初の文字は大文字にする必要があります。

data MyInt = N1 | N2

http://www.haskell.org/onlinereport/lexemes.htmlを参照してください。

于 2012-10-08T09:18:01.543 に答える