F#萌新 这几个题目完全不会啊

第一个问题 完成这个编程

同时不使用不使用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 =  

https://blog.csdn.net/cacyth/article/details/52078473