2016-11-06 6 views
0

私は代入に取り組んでいます。述語ごとにリストを分割する必要があります(?)。 例: (偶数フィルタSPS '(1 2 3 4 5 6 7 8 9 10)'()?)誰かがラケットの店を通り過ぎる様子を説明することはできますか?

出力: (2 4 6 8 10) (1 3 5 7 9)

2つのリストを生成することができません。

+0

ごくわずかですこれを行う。私はストア・パッシングを最も簡単に選択するとは限りません。 私はこれがクラスのためのものであることを賭けており、クラスのコンテキストについてもっと理解することなく答えようとすれば、正しい方法であなたを調整することはできません。それでは、問題の要件についてもう少し詳しくお聞かせください。 –

+0

store-passing-styleはちょうどそれがスタイルであることに言及する価値があります。ラケット特有の店舗通過については何もありません。あなたはどの言語でもそれを行うことができます。これは単にデータ構造上で突然変異を実行するのではなく、メモリの表現を将来の関数呼び出しの引数として渡します(そしてそれも返します)。 –

答えて

0

あなたは、単に二回フィルタリングすることができます:

(define lst '(1 2 3 4 5 6 7 8 9 10)) 

(define odd? (lambda (n) 
       (not (even? n)))) ; in case you don't have odd 

(cons (filter-sps even? lst) 
     (filter-sps odd? lst)) 

をするさまざまな方法の束があります。リストが非常に長い場合、同じリストを反復処理が二度無駄ですが、あなたの例のために、それは

関連する問題