Jos minulla on faktat...
asuu(taina,turku).
asuu(lasse,helsinki).
asuu(tiina,helsinki).
...niin miten listata kaikki kaupungit, joissa jokin asuu. Aluksi tulee mieleen tämä tyypillinen kysymys:
̎[1] 17 ?- asuu(_,X).
X = turku ;
X = helsinki ;
X = helsinki.
Mutta tuossa ei kysytä kaupunkeja, vaan asumisia, relaatioita. Helsingissä asutaan kahdesti.
Kuuluuko prologissa edes ajatella "vakiokeskeisesti", eli kysellä vakiota, jolla on tietynlaisia suhteita.
Prologin ajatusmaailma
KN$
2
255
Vastaukset
- dx
Mites tällainen:
kaupungit(U) :- findall(X,asuu(_,X),L), sort(L,U).
nimet(U) :- findall(X,asuu(X,_),L), sort(L,U).
jolloin saadaan:
?- kaupungit(U).
U = [helsinki, turku].
?- nimet(U).
U = [lasse, taina, tiina].- KN$
Noinhan se onnistuu. Vähän näyttää imperatiiviselta ratkaisulta. Ajattelin että on tuohon on prologissa yksinkertaisempi keino...
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 407003
- 323948
- 463347
- 402949
- 172726
- 372238
- 162196
- 412153
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons482087- 402058