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
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225564- 324900
- 292814
- 342374
- 372078
- 152028
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191657- 121611
- 231512
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 kons291489