小编mat*_*att的帖子

没有因使用句法否定而产生的 (Num (Int -> Int)) 实例

我编写了以下 Haskell 代码来返回 [[Int]] 的主要和次要对角线

getDiagonal' :: [[Int]] -> Int -> (Int -> Int) -> [Int]
getDiagonal' [] _ _ = []
getDiagonal' (x:xs) i fn = i' : getDiagonal' xs (fn i) fn
  where i' = head $ drop i x

getPrimaryDiagonal :: [[Int]] -> [Int]
getPrimaryDiagonal x = getDiagonal' x 0 (+1)

getSecondaryDiagonal :: [[Int]] -> [Int]
getSecondaryDiagonal x = getDiagonal' x ((length x) - 1) (+(-1))
Run Code Online (Sandbox Code Playgroud)

但是,我会认为最后一行可能是以下内容,使用(-)(+)

getSecondaryDiagonal x = getDiagonal' x ((length x) …
Run Code Online (Sandbox Code Playgroud)

recursion haskell partial-application

2
推荐指数
1
解决办法
88
查看次数

标签 统计

haskell ×1

partial-application ×1

recursion ×1