Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (require racklog)
- (define %rodzic ; (%rodzic x y) oznacza, że iks jest rodzicem igreka
- (%rel ()
- [('elżbieta2 'karol)]
- [('elżbieta2 'anna)]
- [('elżbieta2 'andrzej)]
- [('elżbieta2 'edward)]
- [('karol 'william)]
- [('karol 'harry)]
- [('anna 'piotr)]
- [('anna 'zara)]
- [('andrzej 'beatrycze)]
- [('andrzej 'eugenia)]
- [('edward 'james)]
- [('edward 'louise)]
- [('william 'george)]
- [('william 'charlotte)]
- [('william 'louis)]
- [('harry 'archie)]
- [('piotr 'savannah)]
- [('piotr 'isla)]
- [('zara 'mia)]
- [('zara 'lena)]))
- (define %rok-urodzenia
- (%rel ()
- [('elżbieta2 1926)]
- [('karol 1948)]
- [('anna 1950)]
- [('andrzej 1960)]
- [('edward 1964)]
- [('william 1982)]
- [('harry 1984)]
- [('piotr 1977)]
- [('zara 1981)]
- [('beatrycze 1988)]
- [('eugenia 1990)]
- [('james 2007)]
- [('louise 2003)]
- [('george 2013)]
- [('charlotte 2015)]
- [('louis 2018)]
- [('archie 2019)]
- [('savannah 2010)]
- [('isla 2012)]
- [('mia 2014)]
- [('lena 2018)]))
- (define %plec
- (%rel ()
- [('elżbieta2 'k)]
- [('karol 'm)]
- [('anna 'k)]
- [('andrzej 'm)]
- [('edward 'm)]
- [('william 'm)]
- [('harry 'm)]
- [('piotr 'm)]
- [('zara 'k)]
- [('beatrycze 'k)]
- [('eugenia 'k)]
- [('james 'm)]
- [('louise 'k)]
- [('george 'm)]
- [('charlotte 'k)]
- [('louis 'm)]
- [('archie 'm)]
- [('savannah 'k)]
- [('isla 'k)]
- [('mia 'k)]
- [('lena 'k)]))
- (define %spadl-z-konia
- (%rel ()
- [('anna)]))
- ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
- (define %prawnuk
- (%rel (x y z p)
- [(x y) (%and (%rodzic x z)
- (%rodzic z p)
- (%rodzic p y))]))
- (define %praprawnuk
- (%rel (x y z p q)
- [(x y) (%and (%rodzic x z)
- (%rodzic z p)
- (%rodzic p q)
- (%rodzic q y))]))
- (define %rodzenstwo
- (%rel (x y z)
- [(x y)
- (%and (%rodzic z x)
- (%rodzic z y)
- (%not (%is x y)))]))
- ;(%which (x) (%prawnuk 'elżbieta2 x))
- ;(%which (x) (%praprawnuk 'elżbieta2 x))
- ;(%find-all (x y z)
- ; (%and
- ; (%prawnuk 'elżbieta2 x)
- ; (%rok-urodzenia x y)
- ; (%is z (- 2019 y))))
- ;(define %kuzyni
- ; (%rel (x y p1 p2)
- ; [(x y)
- ; (%and (%rodzic p1 x)
- ; (%rodzic p2 y)
- ; (%rodzenstwo p1 p2))]))
- ;(%find-all (x) (%kuzyni 'archie x))
- (define %starsze-rodzenstwo-act
- (%rel (x y p q)
- ;; [(x y)
- ;; (%and
- ;; (%rodzenstwo x y)
- ;; (%rok-urodzenia x p)
- ;; (%rok-urodzenia y q)
- ;; (%plec x 'k)
- ;; (%plec y 'k)
- ;; (%< p q))]
- ;; [(x y)
- ;; (%and
- ;; (%rodzenstwo x y)
- ;; (%rok-urodzenia x p)
- ;; (%rok-urodzenia y q)
- ;; (%plec x 'm)
- ;; (%plec y 'm)
- ;; (%< p q))]
- ;; [(x y)
- ;; (%and
- ;; (%rodzenstwo x y)
- ;; (%rok-urodzenia x p)
- ;; (%rok-urodzenia y q)
- ;; (%plec x 'k)
- ;; (%plec y 'm)
- ;; %fail)]
- ;; [(x y)
- ;; (%and
- ;; (%rodzenstwo x y)
- ;; (%rok-urodzenia x p)
- ;; (%rok-urodzenia y q)
- ;; (%plec x 'm)
- ;; (%plec y 'k))]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'k)
- (%plec y 'k)
- (%< p q))]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'm)
- (%plec y 'm)
- (%< p q))]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'k)
- (%plec y 'm)
- (%>= p 2011)
- (%< p q))]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'k)
- (%plec y 'm)
- (%< p 2011)
- %fail)]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'm)
- (%plec y 'k)
- (%>= q 2011)
- (%< p q))]
- [(x y)
- (%and
- (%rodzenstwo x y)
- (%rok-urodzenia x p)
- (%rok-urodzenia y q)
- (%plec x 'm)
- (%plec y 'k)
- (%< q 2011))] ))
- (%find-all (x y) (%starsze-rodzenstwo-act x y))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement