コレクションの「逆平坦化」を行うコア関数または慣用的な方法はありますか? 例えば、私は次のことを望みます:
(by-two '(1 2 3 4 5 6)) ; evals to '( (1 2) (3 4) (5 6) )
もちろん、上記の場合のフォームには偶数の要素が必要です。または、奇数のコレクションが提示された場合、関数は適切な処理を行う必要があります。もちろん、一般化された by-n関数の方が良いでしょう。概念を深く一般化しようとするメリットがあるかどうか、またはそうするための最良の形式は何なのか、私には明らかではありません。
(by [2 2] '(1 2 3 4 5 6 7 8)) ; evals to '( ( (1 2) (3 4) ) ( (5 6) (7 8) ) )
(by [3 2 1 1 1] '(1 2 3 4 5 6)) ; evals to '(((((1 2 3) (4 5 6)))))