1

Haskell を使用して FOL を実装しようとしています。一階論理は、And や Or などの接続詞で結合された命題の形をとることができます。式の範囲が限られている量指定子もあります。

私がこれまでに行ったことは次のとおりです。

import Data.List

data Prop 
    = Not Prop
    | Prop And Prop
    | Prop Or Prop
    | Prop Impl Prop
    | Prop Equiv Prop
    | ForAll String Prop
    | Exists String Prop
    deriving (Eq, Ord)

しかし、私はこのエラーが発生しています:

 Multiple declarations of ‘Prop’
4

3 に答える 3

6

コンストラクター名として複数回使用しようとしていますProp(最初の単語は常にコンストラクター名です)。AndOrおよびその他に対して中置コンストラクターを使用したいようです。それらをインフィックスで記述するには、コンストラクター名をバッククォートで配置する必要があります。

data Prop
    = Not Prop
    | Prop `And` Prop
    ...
于 2014-11-25T13:09:58.870 に答える