第一个问题 完成这个编程
同时不使用不使用Discriminated Union数据类型,只使用列表类型如何完成
都完成可加15c币
我明明还有一个提问怎么不见了
module AR
type Prop =
| And of Prop * Prop
| Implies of Prop * Prop
| Or of Prop * Prop
| Not of Prop
| False
| True
| Fact of string
let (<=>) p q = And(Implies(p, q),Implies(q, p))
let (=>) p q = Implies(p, q)
let Jones_ill = Fact("Jones is ill." )
let Smith_away = Fact("Smith is away." )
let Directors_dividend = Fact("Directors declare a dividend." )
let Robinson_back = Fact("Robinson comes to his senses "+
"and takes matters into his own hands.")
let Patterson_come = Fact("Patterson comes." )
let Townsend_away = Fact("Townsend is away." )
let Facts = [Jones_ill;
Smith_away;
]
let Program = [
And(And(Jones_ill,Smith_away),Robinson_back)
=> Directors_dividend;
Patterson_come => Robinson_back;
Jones_ill => Patterson_come;
Townsend_away => Robinson_back;
Smith_away => Townsend_away
]
let Goal = [ Directors_dividend => False ]
let rec SLD_resolution glist goal program facts =