2014-11-06 4 views
0

Я хотел знать, можно ли проходить через элементы списка мешков и хранить их в переменной?Перемещение элементов списка мешков

Большого спасибо Ali

Под редакцией Лауна с использованием коды дается ОПАМИ в некоторых комментариях

(defglobal ?*Friends* = 0) 
(bind ?*Friends* (bag create Bob)) 
(bind ?*Friends* (bag create Nicolas)) 
(bind ?*Friends* (bag create Nancy)) 
(bind ?*Friends* (bag create John)) 
(bind ?*Friends* (bag create George))) 

теперь я хочу, чтобы пройти через этот список мешка и печать любой переменный в отдельности,

+0

Если вы не показывают какой-либо код, вы не получите никакой помощи. У меня есть идея, что такое «сумка», и я уверен, что знаю, что такое список (Джесс), и я знаю, как пройти его. Но так как вам придется иметь этот «список мешков», привязанный к переменной (или где еще это?), Ваш вопрос не имеет смысла. Если он находится в слоте, покажите шаблон - это может быть слот или мультислот или упорядоченный факт ... Поскольку ваш Q стоит сейчас, я могу только ответить: «Да, это возможно». – laune

+0

жаль, что, вот мой код: (? Defglobal * Друзья * = 0) (? Привязать * Друзья * (мешок создать Bob)) (? Привязать * Друзья * (мешок создать Nicolas)) (связать? * Друзья * (сумка создает Нэнси)) (bind? * Friends * (bag create John)) (bind? * Friends * (bag create George))) сейчас я хочу просмотреть этот список и распечатать любая переменная отдельно (я имею в виду не то, что появляется при использовании (список пакетов ...). Большое спасибо –

ответ

0

Вы не можете создать мешок таким образом, и я не думаю, что вам нужен мешок, который представляет собой набор пар ключ-значение. То, что вы делаете, - это создать простой список, в котором содержится Боб, который пытается сделать Николаса, Нэнси, Джона и Джорджа.

Сумка будет связывать ключ со значением, например.

(defglobal ?*Friends* = 0) 
(bind ?*Friends* (bag create my-friends)) 
(bag set ?*Friends* Bob "old and reliable") 
%%... 
(bag set ?*Friends* George "new and curious") 

Чтобы получить все имена друзей, которых вы хотите написать

(bind ?names (bag props ?*Friends*)) 

который возвращает список (Bob ... George).

Но вы могли бы создать этот список сразу, в первую очередь ...

+0

Ну, проблема в том, что я не хочу, чтобы все элементы в списке были напечатаны сразу, я хотите, чтобы они печатались один за другим, а не как общий список. Должен ли я выполнять сопоставление для каждого значения каждого слота? –

+0

Сначала это было «sto re [элементы списка мешков] в переменную ", теперь она будет напечатана один за другим. Вы уверены, что знаете, что вам нужно/нужно программировать? – laune

+0

Ну вот почему я хотел пройти через список, чтобы иметь возможность делать все эти шаги позже, но с тем, что вы предоставили, у меня будет только список элементов, которые я не могу пересечь, имею ли я смысл? –

Смежные вопросы