我想檢查嵌套串列中的元素。
我已經嘗試了幾種方法,但我總是會得到錯誤的結果或一些錯誤。
[X] `elem` [[X,X,X],[O,O,O]]
回傳 False 但應該是 True
X `elem` [[X,X,X],[O,O,O]]
拋出錯誤,型別無法匹配。
我在這里想念什么嗎?
uj5u.com熱心網友回復:
串列的元素是子串列,[X]串列中沒有子串列。
您可以檢查子串列的任何元素是否包含X:
any (elem X) [[X, X, X], [O, O, O]]
或使用elemas 中綴運算子:
any (X `elem`) [[X, X, X], [O, O, O]]
但這些在語意上完全相同。
這些將檢查任何子串列(此處[X, X, X]和[O, O, O])X是否是這些串列的元素。
另一種選擇,如@amalloy 所述,是將所有子串列連接成一個串列,然后elem對這些子串列進行檢查,因此:
elem X (concat [[X, X, X], [O, O, O]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386990.html
