2016-11-14 5 views
0

に戻る私は、多くの場合、それを返し、その後、私はいくつかの値を取得する場合、私は何とかそれを処理する必要がある状況を満たすために、:初期化、プロセスおよびラケットにコーディングしながらラケット

(let ([result (compute-some-value)]) 
    (process-somehow result) 
    result) 
process-somehow戻っ「 void

この定型文は間違っています。ラケットは、begin0またはaifのように、このパターンをよりコンパクトに(1行または2行で)記述するための構造を持っていますか、それとも独自のアナフォリックマクロを記述する必要がありますか?

質問を明確にするために、私は、組込みプロシージャがありません

(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

関連する問題