2016-11-14 67 views
0

在编码上拍我经常会遇到的情况,当我得到一些价值,那么我需要以某种方式处理它,然后返回它:初始化,处理和球拍回

(let ([result (compute-some-value)]) 
    (process-somehow result) 
    result) 

其中process-somehow回报“void” 。

这段样板代码看起来错了。球拍是否有一些结构来描述这种图案更加紧凑(一两行),如begin0aif或者我需要编写自己的照应宏?

要澄清一个问题,我在寻找内置球拍建设要能写类似

(init-and-process (compute-some-value) 
        process-somehow) 

(init-and-process (compute-some-value) 
        (process-somehow it)) 

回答

1

没有内置程序对于这一点,但它很容易定义自己的可重复使用的过程:

(define (init-and-process compute process) 
    (let ([result (compute)]) 
    (process result) 
    result)) 

使用方法如下:

(init-and-process compute-some-value process-somehow) 
; => returns (compute-some-value) 
+0

谢谢,我只是想承认,没有这样的内置程序! – dvvrd