[plt-scheme] How can I print the procedure?
Are you using HTDP language or general Scheme?
In your case, using 'eval' seems to be the the answer:
Using Language: Pretty Big (includes MrEd and Advanced Student)
(define (min-f measure L)
(cond ((empty? (rest L)) (first L))
((< (measure (first L))
(measure (min-f measure (rest L))))
(first L))
(else (min-f measure (rest L)))))
(define (my-measure f)
(local ((define evaled-f (eval f)))
(+ (evaled-f 1) (evaled-f 10) (evaled-f 100))))
(define my-list-of-functions (list 'sin
'cos
'(lambda(x)(+ (sin x)(cos x)))
'(lambda(x)(* (sin x)(cos x)))))
(min-f my-measure my-list-of-functions)
;gives
sin
Chongkai
Majorinc, Kazimir wrote:
> I said:
>
> (define (min-f measure L)
> (cond ((empty? (rest L)) (first L))
> ((< (measure (first L))
> (measure (min-f measure (rest L))))
> (first L))
> (else (min-f measure (rest L)))))
>
> (define (my-measure f)(+ (f 1) (f 10) (f 100)))
> (define my-list-of-functions (list (lambda(x)(sin x))
> (lambda(x)(cos x))
> (lambda(x)(+ (sin x)(cos x)))
> (lambda(x)(* (sin x)(cos x)))))
>
> (min-f my-measure my-list-of-functions)
>
> And PLT said:
>
> #<procedure>
>
> Is there any way to actually print that #<procedure>? Except rewriting
> such programs so they do not only calculate procedures, but also
> prepare human-readable output? It can be significant complication ...
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme