Пролог: показать список, содержащийся в списке

В настоящее время у меня есть следующие факты, определенные в программе Prolog:

hobbies([jarrod, [gaming, running, boxing]]).
hobbies([james, [programming, gaming, drawing]]).

Какой запрос может отобразить список увлечений Джаррода? (т.е. [игры, бег, бокс])


person jarrodparkes    schedule 19.03.2013    source источник
comment
?- hobbies([jarrod, Hobbies]). Тем не менее, я бы предпочел перефразировать это как   -  person false    schedule 19.03.2013
comment
.. наличие фактов hobbies(jarrod, [gaming, running, boxing]).   -  person false    schedule 19.03.2013
comment
?- хобби([джаррод, хобби]). Это продолжает вызывать ошибку... ОШИБКА: верхний уровень: неопределенная процедура: хобби/1 (DWIM не может исправить цель)   -  person jarrodparkes    schedule 19.03.2013
comment
Во-первых, в приведенном выше есть синтаксическая ошибка. Принимает ли хобби один аргумент массива или два аргумента?   -  person bchurchill    schedule 19.03.2013
comment
моя вина, хобби должно принимать один аргумент. хобби([Имя, [СписокХобби]]).   -  person jarrodparkes    schedule 19.03.2013
comment
@jarrodparkes: Но было бы предпочтительнее иметь два аргумента!   -  person false    schedule 19.03.2013


Ответы (1)


@false правильно:

hobbies([jarrod, Hobbies]).

он объединяет увлечения против всех фактов, а затем получает только те, где первым элементом списка является jarrod. Затем он объединяет хобби со списком хобби.

person bchurchill    schedule 19.03.2013