3

要素のシーケンスを「ペア」のシーケンスに変換する必要があることに気づきました。その最初の要素は最初のシーケンスの要素であり、while の 2 番目の要素はその要素からの最初のシーケンスの末尾です。

(abcde) -> ((a (bcde)) (b (cde)) (c (de)) (d (e)) (e ()))

私はこれを書きました:

(defn head-and-tail [s]
  (cond (empty? s) ()
    :else (cons (list (first s) (rest s)) (head-and-tail (rest s)))))

組み込み関数、またはこれをより簡単に実行できる組み込み関数の単純な組み合わせはありますか?

4

1 に答える 1