1

DrSchemeの組み込み関数「filter」の使用を手伝ってください。

「数値「Max」を消費する関数「hello」を作成し、数値のリスト「L」を作成して、「Max」よりも小さい数値のリストを「L」に生成します。」

書式設定のためのコメントから取得

これは私が今まで持っているものです

(define (smaller? n Max) 
  (cond 
    [(> Max n) n] 
    [else empty])) 
(define (hello Max L) 
  (filter smaller? L))

Maxを関数helloに実装する方法がわかりません。

4

2 に答える 2

1

あなたのsmaller?定義を使用して、私は次のようなものに行きます

(define (hello Max L)
  (filter (lambda (n) (smaller? n Max)) L))

これは、hello関数のMax引数を閉じるラムダ関数を使用します。Maxしたがって、フィルタリングに使用されるラムダ関数内に「埋め込まれ」ます。

于 2009-05-07T23:00:44.940 に答える
0

ヒント: 以下を使用して無名関数を作成できますlambda

(lambda (x) (have-fun-with x))

編集:別のヒント:既にブール値を返します。囲み構造(> Max n)は必要ありません。cond

于 2009-05-07T21:55:37.310 に答える