任何人都可以使用這個函數嗎?與Haskell中的列表衝突
getCell :: [[Int]] -> Int -> Int -> Int
其中m i j是列表m的列表的行和列的索引。 索引從零開始,每行都是相同的大小。 如果i或j無效,函數應返回-1。
我在Haskell上進行了一次考試,儘管這可能會出現,但我仍然想知道我該怎麼做,並且因爲我從未與Haskell中的列表工作過,不知道如何開始解決這個問題。你能幫我一下嗎 ?
這裏是我到目前爲止已經完成:
getCell :: [[Int]] -> Int -> Int -> Int
getCell [] _ _ = "the list is empty!"
getCell zs x y =
if x > length zs || y > length (z:zs) then -1 else
let row = [x| x == !! head z <- zs]
column = ...
我不知道如何找到這應該使用(!!)
操作的行和列
@GaneshSittampalam我已經編輯了! – user2876457
你知道'Maybe' monad嗎? - 在這種情況下,它通常用在haskell-land中以避免像'-1'這樣的魔法值。 – epsilonhalbe