首页 文章

初始化,处理并返回球拍

提问于
浏览
0

在Racket上进行编码时,我经常遇到某种情况,当我得到一些 Value 时,我需要以某种方式处理它,然后返回它:

(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 回答

  • 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)
    

相关问题