私は次のアーランコードを持っています:
lists:all(fun(Element) -> somefunction(TestCase -- [Element]) end, TestCase).
TestCase は配列です。1 つの要素が欠落しているリスト/配列を反復処理しようとしています。
問題は、呼び出されるたびに TestCase 配列のコピーが作成されるため、最悪の場合、このコードが O(N^2) 時間かかることです--
。非関数型言語には明確な O(N) ソリューションがあります。
saved = TestCase[0]
temp = 0
NewTestCase = TestCase[1:]
for a in range(length(NewTestCase)):
somefunction(NewTestCase)
temp = NewTestCase[a]
NewTestCase[a] = saved
saved = temp
...またはそのようなもの。
erlang に O(N) ソリューションはありますか?