powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / lisp перемножить многочлены
5 сообщений из 30, страница 2 из 2
lisp перемножить многочлены
    #35322160
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sotny
(let ((res (r)) (pod res))
)


1. let должен содержать какое-то тело, для которого вычислены "переменные":

Код: plaintext
1.
2.
3.
4.
5.
(let ((a  10 )
       (b  20 ))
  (newline)
  (display (+ a b))
)

2. r это функция ? (r) вызовет функцию с именем r, точно нужны скобки ?
3. let не позволяет ссылаться на определенные в нем переменные. Если склероз мне не изменяет, имеется let*, который разворачивается следующим образом:

Код: plaintext
1.
2.
3.
4.
5.
(let* ((a  10 )
         (b (* a  2 )))
  (newline)
  (display (+ a b))
)

разворачивается в:

Код: plaintext
1.
2.
3.
4.
5.
6.
(let ((a  10 ))
   (let ((b (* a  2 )))
      (newline)
      (display (+ a b))
   )
)

Как я уже говорил, сам let развертывается следующим образом:

Код: plaintext
1.
2.
3.
((lambda (a b)
   (newline)
   (display (+ a b)))  10   20 )
...
Рейтинг: 0 / 0
lisp перемножить многочлены
    #35322279
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос не в тему - сейчас программирую на си шарпе, до этого - на с++. поможет ли мне лисп лучше писать программы на си шарпе?Меняет ли Лисп образ мышления? пробовал руби он рэйлз - после этого стало намного легче
...
Рейтинг: 0 / 0
lisp перемножить многочлены
    #35322379
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeusTheTrueGodвопрос не в тему - сейчас программирую на си шарпе, до этого - на с++. поможет ли мне лисп лучше писать программы на си шарпе?Меняет ли Лисп образ мышления? пробовал руби он рэйлз - после этого стало намного легче

Позволит взглянуть на задачи с другой точки зрения
Или окончательно все запутает

Если после руби стало легче, почему бы и не попробовать :)
...
Рейтинг: 0 / 0
lisp перемножить многочлены
    #35325619
sotny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
(define (mult lst1 lst2)

 (cond
 ((or (null? lst1) (null? lst1)) `())
 (else 
   (pod (multy lst1 lst2))
 )
)

)
(define (multy a b )
  (cond	
    ((or (null? a) (null? b)) `())
	(
	 (append  (map (lambda (x) (* (car a) x )) b) 
	       (multy (cdr a) b )
        )
	)
  )
)
(define (pod alist)
  (append 
   (list (car alist))
   (append 
    (cond
	( (list? (cadr alist))(list(+(cadr alist)(caddr alist)))) 
    (else
	 (cadr alist)
	 (cond 
	  ( (and (null? (cadddr alist))(list? (cadddr alist))) (list(cadddr alist)))
	  
	 )
    )	 
	)
   )
 ))
(mult `( 1   2 )`( 1 ))[
если задать (1 2) (1), то ошибка:the object (), passed as argument to safe-cdr, is not a pair.
...
Рейтинг: 0 / 0
lisp перемножить многочлены
    #35325885
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sotny
(cond
((or (null? a) (null? b)) `())
(
(append (map (lambda (x) (* (car a) x )) b)
(multy (cdr a) b )
)


И вновь спрошу :)
Вы уверены что тут не нужен else ?
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / lisp перемножить многочлены
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]