> 1 <

Автор Сообщение

filimon

Members


Статус

9 сообщений

Где: Russia
Род занятий:
Возраст:

#5728   2012-02-06 16:55 GMT+3 часа(ов)      
В "Мир Лиспа" показывается, что эта функция возвращает определение функции, которая связана с символом. То есть, на выходе должно получаться лямбда-выражение. Но у меня почему-то получается несколько другое:
CL-USER> (symbol-function 'car)
#<FUNCTION CAR>
CL-USER>
 


Как тогда сделать так, чтобы получить лямбда-выражение, а не просто подтверждение того факта, что такая функция существует?

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#5729   2012-02-06 21:29 GMT+3 часа(ов)      
А что по твоему вообще лямбда-выражение? Ты исходник ф-ии что-ли хочешь получить? Ф-ия то уже скомпилирована. А вообще: function-lambda-expression

filimon

Members


Статус

9 сообщений

Где: Russia
Род занятий:
Возраст:

#5730   2012-02-06 21:52 GMT+3 часа(ов)      
Цитата
LinkFly :
Ты исходник ф-ии что-ли хочешь получить?


Ну, так в учебнике как раз об этом и говорится.
 
_(defun listl (x у)
(cons х (cons у nil)))
LIST
_(symbol-function 'listl)
LAMBDA (X Y) (CONS X (CONS Y NIL)))
 


Это пример из учебника.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5733   2012-02-07 01:23 GMT+3 часа(ов)      
Цитата
Это пример из учебника.
У них древний интерпретатор.

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#5739   2012-02-23 01:27 GMT+3 часа(ов)      
На CLisp
[1]> (defun foo(x)(+ x 1))
FOO
[2]> (symbol-function 'foo)
#<FUNCTION FOO (X) (DECLARE (SYSTEM::IN-DEFUN FOO)) (BLOCK FOO (+ X 1))>
[3]> (compile 'foo)
FOO ;
NIL ;
NIL
[4]> (symbol-function 'foo)
#<COMPILED-FUNCTION FOO>

По идее, без compile так и должно работать, только умные интерпретаторы на ходу оптимизируют
I wish I'd made you angry earlier
> 1 <


Онлайн :

0 пользователь(ей), 24 гость(ей) :




Реклама на сайте: