我試圖讓一個列表理解工作,其目的是驗證每個元素X
在List
後面跟着X+Incr
(或一個空列表)。稍後,我將使用該列表並將其與使用lists:seq(From,To,Incr)
生成的列表進行比較。 目的是練習編寫測試用例和查找測試屬性。Erlang列表理解,再次
我已經做了以下步驟:
1> List.
[1,3,5,8,9,11,13]
2> Incr.
2
3> List2=[X || X <- List, (tl(List) == []) orelse (hd(tl(List)) == X + Incr)].
[1]
對我來說,這似乎是我的列表中理解只需要第一個元素在List
,運行通過過濾器/警衛,並停止,但應對List
中的每個元素都做同樣的事,對吧?
我想第3行返回一個列表,如下所示:[1,2,9,11,13]
。
任何想法如何修改當前的理解,或完全改變我的方法?
PS。我正在使用eqc-quickcheck,通過Quviq's webpage發佈,如果這可能會改變如何解決這個問題。
是的......當然。愚蠢的我(;我想理解不是正確的工具,就像AndréLaszlo說的那樣... –
我會實現一個輔助函數,而不是像上面的評論提及的那樣,假設這將是最簡單的方法! –