私はこれを次のようにしていますintroduction to Haskell、この特定の場所(ユーザー定義型2.2)は特にわかりにくいです。要するに、私はコードのどの部分がコードであり、どの部分が著者の考えであるかを理解していません。 (Pt
とは何ですか - どこにも定義されていませんか?)言うまでもなく、実行/コンパイルできません。intと文字列のどちらかを含む型を作成します。
私が理解しやすくする例として、IntegerとStringのペア、またはStringとIntegerのペアですが、他のものは定義しませんでした。それを使用することになり
理論的な機能は非常に次のようになります。ここでは
(defgeneric combine (a b)
(:documentation "Combines strings and integers"))
(defmethod combine ((a string) (b integer))
(concatenate 'string a (write-to-string b)))
(defmethod combine ((a integer) (b string))
(concatenate 'string (write-to-string a) b))
(combine 100 "500")
'Pt'は' Point a'データ型のコンストラクタです。すなわち、a型の2つの値をとり、それらを 'Pt'で囲む関数a-> a->点aである。 'data'宣言は私にとっては自然な感じです.LHSでは名前(およびもしあればパラメータ)を与え、RHSではこの型が取り得る値を列挙します。 – Vitus