私はClojureと関数型プログラミング全般を学ぼうとしています。そのために、 Codingbatの演習を解決しようとしています。別のサブ配列からサブ配列[123]を見つけなければならないときに行き詰まります。ページから:
intの配列が与えられた場合、.. 1、2、3、..が配列のどこかにある場合はTrueを返します。
答えそのものではなく、どうすれば解決できるかというアイデアが大好きです。まあ、それは答えとほぼ同じですが、どんなアイデアでも構いません。
ありがとう。
「配列内のアイテム」で考えることから、シーケンスを取り、シーケンスを返す関数にそれを取ります。これにより、マッチングのタスクが複雑になり、マッチングしたものが問題を解決するかどうかを判断できます。(decomplectはClojure辞書にのみあるとかなり確信しています)
一般に:
autotestbed.core> (partition 3 1 (range 10))
((0 1 2) (1 2 3) (2 3 4) (3 4 5) (4 5 6) (5 6 7) (6 7 8) (7 8 9))
(filter your-predicate-here (partition ...)
より大きな例では、これをいくつかの関数に分割してからそれらを構成することを選択する人もいます。
あなたの元の質問に対処するために:(グーグルが質問のタイトルから持ってきた千人のために)
関数はサブベクトルを順番にsubvec
返します-1回
user>(subvec (vec (range 1000)) 10 20)
[10 11 12 13 14 15 16 17 18 19]