0
如果可能的話用下面的問題我需要一些幫助....幫助哈斯克爾
atomsClause :: Clause ! [Atom]
此功能必須採取條款並返回一套條款的原子。請注意,該集合不應包含任何重複項。atoms :: Formula![Atom]
該函數必須採用公式返回公式的原子集。 請注意,該設置不應包含任何重複項。isLiteral :: Literal ! Clause ! Bool
如果在子句中可以找到給定的字面值 ,則此函數返回True。flipSymbol :: Model ! Atom ! Model
該函數必須採用模型和原子,並翻轉模型中原子的真值。
下面是代碼:
module Algorithm where
import System.Random
import Data.Maybe
import Data.List
type Atom = String
type Literal = (Bool,Atom)
type Clause = [Literal]
type Formula = [Clause]
type Model = [(Atom, Bool)]
type Node = (Formula, ([Atom], Model))
atomsClause :: Clause -> [Atom]
atomsClause = undefined
atoms :: Formula -> [Atom]
atoms = undefined
isLiteral :: Literal -> Clause -> Bool
isLiteral = undefined
flipSymbol :: Model -> Atom -> Model
flipSymbol = undefined
謝謝。
我想在第一個把它寫這樣......
atomsClause :: Clause -> [Atom]
atomsClause [(Bool,Atom)] =[a|(b,a)<-(Bool,Atom)]
...這是好嗎?
我已經做到了這樣,它返回確定.... atomsClause XS =小塊[A |(B,A)< - XS ] ...謝謝你的回覆...但是我真的需要一些建議第二個...對不起,但我沒有在haskell很長時間編程 – TKFALS 2011-01-31 15:35:07