我正在尝试对列表中的3个元素进行排序.但是我在将其翻译成haskell时遇到了麻烦.是否有可能在haskell中执行嵌套if语句?我一直在尝试模式匹配,但它永远带我.
if (x < y) {
if (z < x) swap(x,z);
} else {
if (y < z) swap(x,y);
else swap(x,z);
}
if(z<y) swap(y,z);
Run Code Online (Sandbox Code Playgroud)
这是我试过的
intCMP :: Int -> Int -> Ordering
intCMP a b | a == b =EQ
| a < b = LT
| otherwise = GT
sort3 :: Ord a => (a -> a -> Ordering) -> [a] -> [a]
sort3 cmp [a,b,c] = if cmp a b == LT then
if cmp a c == …Run Code Online (Sandbox Code Playgroud) 我想将元组列表转换(a,a)为as 列表.这就是我到目前为止所拥有的
map (\(x,y) -> [x,y]) [(1,4),(2,5)]
> [[1,4],[2,5]]
Run Code Online (Sandbox Code Playgroud)
但我想要的是
> [1,4,2,5]
Run Code Online (Sandbox Code Playgroud)