Re: [Python] esercizio sulla creazione di una base di conoscenza

2020-08-01 Per discussione Daniele Zambelli
Il giorno mar 28 lug 2020 alle ore 21:56 maria teresa panunzio <
mariateresa.panun...@yahoo.it> ha scritto:

> Buona serata,
> chiedo aiuto per capire  perchè una funzione ricorsiva si comporta come un
> ciclo infinito.
> Ieri sera, ho lasciato che il programma andasse in esecuzione e avesse una
> notte intera davanti...ahimè stamane era ancora lì.
> Non ho segnalazioni.
> grazie a chi mi vorrà suggerire qualche metodo.
>

Il problema è interessante, ma non ho il tempo per analizzare 300 righe di
codice. Riusciresti a mandare un programma funzionante, che riproduce il
problema, di poche righe?

Ciao

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] esercizio sulla creazione di una base di conoscenza

2020-08-01 Per discussione
Il giorno sab 1 ago 2020 alle ore 09:38 Daniele Zambelli
 ha scritto:
> Il giorno mar 28 lug 2020 alle ore 21:56 maria teresa panunzio 
>  ha scritto:
>> Buona serata,
>> chiedo aiuto per capire  perchè una funzione ricorsiva si comporta come un 
>> ciclo infinito.
>> Ieri sera, ho lasciato che il programma andasse in esecuzione e avesse una 
>> notte intera davanti...ahimè stamane era ancora lì.
>> Non ho segnalazioni.
>> grazie a chi mi vorrà suggerire qualche metodo.
>
> Il problema è interessante, ma non ho il tempo per analizzare 300 righe di 
> codice. Riusciresti a mandare un programma funzionante, che riproduce il 
> problema, di poche righe?

Se non ho sbagliato ad interpretare, credo corrisponda a:
```
from kanren import var, lall, lany, membero, eq, run
people = var()
rules = lall(
# There are 3 people: Giovanni, Berto, Laura
(eq, (var(), var(), var()), people),
# Giovanni's house is Splendor or Majestic
lany(
(membero, ("Giovanni", "Splendor", var()), people),
(membero, ("Giovanni", "Majestic", var()), people),
),
# Room 305 is in Splendor house
(membero, (var(), "Splendor", "305"), people),
# Berto's house is Beatiful
(membero, ("Berto", "Beatiful", var()), people),
# Laura lives in room 406
(membero, ("Laura", var(), "406"), people),
# Who lives in house Majestic?
(membero, (var(), "Majestic", var()), people),
# Who lives in room 204?
(membero, (var(), var(), "204"), people),
)
solutions = run(0, people, rules)
solution = list({tuple(sorted(s)) for s in solutions})[0]
for s in solution:
print(*s)
```

HAND,
㎝

-- 
 THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this 📧. As long as you retain this notice you can
do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. — ㎝
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python