Eval в racket (scheme) - Lisp
Формулировка задачи:
Хочу опробовать генетические алгоритмы, но застопорился на выполнении.
Есть функция, которая генерирует функции (исходный текст не прикладываю, дабы не раздувать пост, но, если понадобится, выложу)
> (gen-fun 3) '(* (sin (/ x x)) (/ x (tan -2.6227513946435153))) > (gen-fun 3) '(expt (sin -5.433515578082585) (tan (tan -2.8049946072136223))) > (gen-fun 3) '(tan (tan (+ 0.6028992322746305 x))) > (gen-fun 3) '(* (/ (tan 9.743122557776399) (/ 7.036349746296359 1.7600744697487674)) (tan (/ 0.7442720548269772 8.116294599182272))) > (define x (gen-fun 2)) > x '(/ (+ -7.469734548056681 x) (expt x -8.792416166705676)) > (list? x) #t
Вопрос: как правильно применить это к аргументам?
P.S. Если что, в common lisp вопрос также актуален Требуется что-то, вроде((λ (x) (gen-fun 3)) 15)
Решение задачи: «Eval в racket (scheme)»
textual
Листинг программы
((define (add-lambda sexpr args) `(lambda ,args ,sexpr)) (add-lambda '(sin x) '(x)) => '(lambda (x) (sin x)) (eval (list (add-lambda '(sin x) '(x)) 1)) => 0.84...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д