Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Помогите с лабами, пожалуйста
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 28.01.2012, 13:25

Цитата:
Сообщение от Fizigr Посмотреть сообщение
defparameter не работает, выдает ошибку (
(
1. Какой у Вас далект Лиспа?

2. Приведите текст сообщения об ошибке.
Ответить с цитированием
  (#17 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 28.01.2012, 13:29

lisp Код:
(defparameter slovar '((cakes pyrogy) (ale pivo) (phone telefon) (child rebenok) (day den) (apple yabloko) (cat kot) (dog sobaka) (full polniy)))

(defun flat (w &optional acc)
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))

(defun late (a w)
  (cond ((null w) nil)
        ((equal a (car (car w))) (cons (car (cdr (car w))) (late a (cdr w))))
        ((late a (cdr w)))))

(defun tran (w v)
  (cond ((null w) nil)
        ((nconc (late (car w) v) (tran (cdr w) v)))))

(defun translate (w v)
  (tran (flat w) v))

> (translate '((apple) (phone) (day)) slovar)
(YABLOKO TELEFON DEN)
Ответить с цитированием
  (#18 (permalink)) Старый
Fizigr Fizigr вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2012
По умолчанию 28.01.2012, 13:37

microsoft lisp v 5.10
muLISP-86 IBM PC MS-DOS v 5.10 (01/06/86)

Сообщение такое:
Undefined function Break: (defparameter ...
Ответить с цитированием
  (#19 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 28.01.2012, 13:48

Какие-то функции в muLISP работают не так как в Common Lisp, попробуйте поменять на те функции, которые есть в muLISP. Возможно, такой вариант:

lisp Код:
(setf slovar '((cakes pyrogy) (ale pivo) (phone telefon) (child rebenok) (day den) (apple yabloko) (cat kot) (dog sobaka) (full polniy)))

(defun flat (w &optional acc)
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))

(defun late (a w)
  (cond ((null w) nil)
        ((equalp a (car (car w))) (cons (car (cdr (car w))) (late a (cdr w))))
        ((late a (cdr w)))))

(defun tran (w v)
  (cond ((null w) nil)
        ((append (late (car w) v) (tran (cdr w) v)))))

(defun translate (w v)
  (tran (flat w) v))

> (translate '((apple) (phone) (day)) slovar)
(YABLOKO TELEFON DEN)
Ответить с цитированием
  (#20 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 28.01.2012, 13:50

&optional просмотрел, такой вариант:

lisp Код:
(setf slovar '((cakes pyrogy) (ale pivo) (phone telefon) (child rebenok) (day den) (apple yabloko) (cat kot) (dog sobaka) (full polniy)))

(defun flat (w acc)
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))

(defun late (a w)
  (cond ((null w) nil)
        ((equalp a (car (car w))) (cons (car (cdr (car w))) (late a (cdr w))))
        ((late a (cdr w)))))

(defun tran (w v)
  (cond ((null w) nil)
        ((append (late (car w) v) (tran (cdr w) v)))))

(defun translate (w v)
  (tran (flat w nil) v))

> (translate '((apple) (phone) (day)) slovar)
(YABLOKO TELEFON DEN)
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
Fizigr Fizigr вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2012
По умолчанию 28.01.2012, 13:58

setf - ругается, я использую setq
equalp - неизвестная функция
в итоге пропустив все ошибки выдал полный список русских слов ))
Ответить с цитированием
  (#22 (permalink)) Старый
Fizigr Fizigr вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2012
По умолчанию 28.01.2012, 14:03

Все получилось!

lisp Код:
(setq slovar '((cakes pyrogy) (ale pivo) (phone telefon) (child rebenok) (day den) (apple yabloko) (cat kot) (dog sobaka) (full polniy)))

(defun flat (w acc)
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))

(defun late (a w)
  (cond ((null w) nil)
        ((eql a (car (car w))) (cons (car (cdr (car w))) (late a (cdr w))))
        ((late a (cdr w)))))

(defun tran (w v)
  (cond ((null w) nil)
        ((append (late (car w) v) (tran (cdr w) v)))))

(defun translate (w v)
  (tran (flat w nil) v))
(RDS)

Спасибо!
Ответить с цитированием
  (#23 (permalink)) Старый
Fizigr Fizigr вне форума
Новичок
 
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2012
По умолчанию 28.01.2012, 16:55

Не хочется создавать новую тему, а как отправлять ЛС, я что-то не нашел.
_sg, можете мне помочь с курсовиком? Он состоит из 2-х частей, создание программы тестрирования студентов (не сложной) на прологе (1-я часть) и на лиспе (2-я часть).
1-я часть уже реализована, имеются исходники и рабочий проект. Нужно реализовать на лиспе. Свяжитесь со мной пожалуйста: ICQ 2299884, Fizigr...mail.ru
Ответить с цитированием
  (#24 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 19.11.2014, 12:07

как вариант:
lisp Код:
(defun flat (w)
  (loop for a in w
        if (and a (atom a)) collect a
        else nconc (flat a)))

(defun late (a w)
  (cond ((null w) nil)
        ((equal a (caar w)) (cons (cadar w) (late a (cdr w))))
        ((late a (cdr w)))))

(defun tran (w v)
  (cond ((null w) nil)
        ((nconc (late (car w) v) (tran (cdr w) v)))))

(defun translate (w v)
  (tran (flat w) v))

> (translate '(cakes (ale)) '((cakes pyrogy) (ale pyvo)))
(PYROGY PYVO)
Ответить с цитированием
Пользователь сказал cпасибо:
castorsky (20.11.2014)
Ads
Ответ

Метки
объединение списков , программа переводчик

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста Rock_am_ring Видеокарты 5 30.01.2012 21:38
Люди добрые, помогите с лабами, пожалуйста! PashaKol Lisp 15 30.01.2012 21:04
Помогите пожалуйста Denik DHTML, JavaScript, VBScript 0 28.09.2011 18:44
Помогите пожалуйста! Cote_D_Or Любые вопросы от новичков 17 20.06.2011 13:17
Помогите пожалуйста!! lsvsxb Системный блок 4 26.01.2011 14:31
Помогите пожалуйста organatik Видеокарты 5 25.01.2011 21:51
помогите с лабами катюшечка Pascal 1 28.09.2010 22:47
Помогите пожалуйста!!!!! Ринат 91 Pascal 1 27.05.2010 03:51
Помогите пожалуйста!!! bulka-12 Подбор комплектующих 15 15.01.2009 17:43
Помогите пожалуйста pentor Pascal 3 16.04.2008 12:18
помогите пожалуйста Pretty Visual Basic 0 24.05.2005 20:09
Помогите пожалуйста! Oksana22 Prolog 0 09.05.2005 19:04



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов