![]() |
|
|
![]()
|
|
| brianosally |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 22.12.2010 Репутация: нет Всего: нет |
%линеаризация(уничтожение многоуровневости списка к пр. [a,[b,[c]]] --> [a,b,c]) lineariz([H|L],L1):-lineariz(H,LS),lineariz(L,LS2),union_lists(LS,LS2, L1). lineariz([],[]). lineariz(H,[H]). [a,[b,[c]]] --> [a,b,c] [a,[b,[c]]] --> [a,b,c,[]] [a,[b,[c]]] --> [a,b,c,[],[]] [a,[b,[c]]] --> [a,b,c[],[],[]] ........................................... [a,[b,[c]]] --> [a,b,[c]] и т. д. Но если добавить ! в выражение, то обратный ход отсечется, как и куча лишних вариантов: %линеаризация(уничтожение многоуровневости списка к пр. [a,[b,[c]]] --> [a,b,c]) lineariz([H|L],L1):-lineariz(H,LS),lineariz(L,LS2),!,union_lists(LS,LS 2,L1). lineariz([],[]). lineariz(H,[H]). результат : [a,[b,[c]]] --> [a,b,c] %второй вариант у меня так и не заработал, но может кто усовершенствует: %lineariz([[H|L]|H1],L2):-lineariz([H|[L|H1]],L2). %lineariz([H|[L|H1],[H|L2]):-lineariz([L|H1],[H|L2]). |
||||
|
|||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |