【发布时间】:2012-03-25 18:34:21
【问题描述】:
使用 Racket,我想设计一个过程,将一个二进制运算和两个任意类型的参数 a 和 b 作为其输入,计算参数的二进制运算,并返回一个描述计算结果的字符串。例如,如果我的过程被称为 foo,那么
(foo + 1 2)
(foo cons 'bar empty)
会回来
The + of 1 and 2 is: 3
The cons of 'bar and empty is: (bar)
我的代码看起来像
(define (foo op a b)
(let ((result (op a b)))
(display
(string-append
"The "
(arg->string op)
" of "
(arg->string a)
" and "
(arg->string b)
" is: "
(arg->string result)
))))
是否可以构造一些操作 arg->string 来执行我想要的操作(即,在转换为字符串之前评估其参数?)。 只需构造一个字符串或在其中引用参数过程的主体返回文字结果,即“op”或“op”而不是“+”或“+”。
感谢任何帮助。
【问题讨论】: