Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.190.217.134] |
|
Сообщ.
#1
,
|
|
|
Есть программа на Прологе, работающая со списками (если в первом есть элементы второго, то заменить их на элементы третьего
domains list = symbol* predicates n_member(symbol,list,integer) zamena(list,list,list,list) clauses n_member(X,[X|_],1). n_member(X,[_|T],N):-n_member(X,T,N1),N=N1+1. zamena([],_,_,[]). zamena([B|AL],[B|BL],[C|CL],[C|DL]):-!, zamena(AL,BL,CL,DL). zamena([A|AL],[_|BL],[_|CL],[A|DL]):-!, zamena(AL,BL,CL,DL). как это превести на язык MuLISPa? или просто LISPa? ЗЫ.. понять не могу в какую такую рамку пихать коды программ |
Сообщ.
#2
,
|
|
|
Геморно, но попробовать можно.
(defun mem (el,li) (cond <br> ((eq li nil) T) <br> ((eq el (car li)) nil)<br> (T (mem el (cdr li)]<br>(defun chlist (li1,li2) (cond<br> ((eq li1 nil) nil)<br> ((mem (car li1) li2) (chlist (cdr li1) li2))<br> (T (cons (car li1) (chlist (cdr li1) li2)]<br> |
Сообщ.
#3
,
|
|
|
Я читал, что есть реализации пролога, в которых сам компилятор реализован так, что транслирует PROLOG-код в LISP-программу.
Ну это примерно как на ранних стадиях развития C++ компиляторы компилировали C++ код не сразу в машинный код, а в программу на Си. А далее программист уже по своему выбору пользовался имевшимися в то время в огромном кол-ве комилятором Си |