LINUX.ORG.RU

sbcl выдал странную ошибку

 


0

4
(defun list-moment-left-A
  (map left-moment-A *left-forces-A* *left-A*))
; in: DEFUN LIST-MOMENT-LEFT-A
;     (SB-INT:NAMED-LAMBDA LIST-MOMENT-LEFT-A
;         (MAP LEFT-MOMENT-A *LEFT-FORCES-A* *LEFT-A*)
;       (BLOCK LIST-MOMENT-LEFT-A))
; 
; caught STYLE-WARNING:
;   The variable MAP is defined but never used.
; 
; caught STYLE-WARNING:
;   The variable LEFT-MOMENT-A is defined but never used.
; 
; compilation unit finished
;   caught 2 STYLE-WARNING conditions
LIST-MOMENT-LEFT-A

Во-первых ты забыл пустой список аргументов, во-вторых, если ты хочешь функцию left-moment-A то нужно писать #'left-moment-A, в третьих ты вероятно хочешь mapcar а не map.

И что у тебя за мания использовать глобальные переменные? Не делай так.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

И что у тебя за мания использовать глобальные переменные? Не делай так.

Мне так проще, знаю, что так делать не надо.

saufesma
() автор топика
Ответ на: комментарий от turtle_bazon

Переписывать с Scheme на Lisp ночью не рекомендуется.

saufesma
() автор топика
Ответ на: комментарий от no-such-file

Вот ещё но тема та же

(defvar *distances-lst*
  '(50 990 1181.58))
(defvar *A-distance* 0)
(defvar *A-right* '())

(defun collect-right-A (A-distance distances-lst)
      (if (< A-distance (car distances-lst))
	  *A-right*
	  (progn
	    (push (car distances-lst) *A-right*)
	    (collect-right-A A-distance (cdr distances-lst)))))
WARNING: redefining COMMON-LISP-USER::COLLECT-RIGHT-A in DEFUN
COLLECT-RIGHT-A
CL-USER> (collect-right-A *A-distance* *distances-lst*)
(50 990 1181.58 50 990 1181.58 50 990 1181.58 50 990 1181.58) такого не ожидал
saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 1)

Такое ощущение, что вы lisp методом тыка учите. Это неправильно, лисп так не учится. Прочтите SICP & PCL. Это займёт некоторое время, но сейчас же вы его просто теряете, а так — проведёте с пользой.

ugoday ★★★★★
()
Ответ на: комментарий от saufesma

(50 990 1181.58 50 990 1181.58 50 990 1181.58 50 990 1181.58) такого не ожидал

Чувствуешь, как говно полезло из-за глобальных переменных? Мысли в голову никакие не приходят?

anonymous
()
Ответ на: комментарий от ugoday

SICP

и читал и лекции смотрел, там фокус есть, у студентов там какие-то методички для подготовки к лекциям, а с одним SICP оно не берётся, а может я не особо одарённый.

Такое ощущение, что вы lisp методом тыка учите

А у меня такое ощущение, что вы можете только языком умные вещи.

saufesma
() автор топика
Ответ на: комментарий от anonymous

Мысли в голову никакие не приходят?

Конечно приходят. Не совсем уверен, но если от глобальных переменных отказаться то тогда функции будут использоваться как data.

saufesma
() автор топика
Ответ на: комментарий от saufesma

А у меня такое ощущение, что вы можете только языком умные вещи.

Я предполагал, что вы как-то так мой совет и воспримете.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

Не стоит тратить свое время на меня. Если знаете какой ответ получите.

saufesma
() автор топика
Ответ на: комментарий от saufesma

то тогда функции будут использоваться как data

И почему это проблема? Да и то не обязательно, локальную функцию определи.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Я подзабыл многое, сейчас пытаюсь вспомнить, сделаю, выложу, хорошо.

saufesma
() автор топика
Ответ на: комментарий от no-such-file
(defun list< (N L)
; Makes a copy of list L
; containing only elements
; that are < N.
; L must be a list of numbers.
(if (null L)
nil
(if (< (first L) N)
(cons (first L) (list< N (rest L)))
(list< N (rest L)))))

CL-USER> (list< 4 '(1 2 3 4 5))
(1 2 3)
CL-USER> (list< 0 '(1 2 3 4 5))
NIL
CL-USER> (list< 2 '(1 2 3 4 5))
(1 2 3 4)
CL-USER> (list< 2 '(1 2 3 4 5))
(1)

такой код можно записать на loop или на do?

saufesma
() автор топика
Ответ на: комментарий от no-such-file

Вчера перед сном подумал что наверное какие-то стандартные функции есть для этого дела.

saufesma
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.