如何在 Haskell 情况下使用“<0”条件
How do I use "<0" condition in Haskell case
所以我正在尝试使用 case
表达式和 if else
制作递归阶乘函数,尽管我不知道如何为我的代码编写 <0
条件
factorial x = case of x
<0 -> -1
0 -> 0
.
.
.
我对Haskell完全陌生,所以请不要对我太苛刻。
你可以和守卫一起工作,例如:
factorial x
<b>| x < 0 = -1</b>
factorial 0 = 0
-- ⋮
或者我们可以将这些守卫添加到 case 语句中,如 :
factorial x = case x of
<b>x | x < 0 -> -1</b>
0 -> 0
-- ⋮
或者您可以使用 view patterns [Haskell gitlab wiki]:
{-# LANGUAGE <b>ViewPatterns</b> #-}
factorial x = case x of
((< 0) -> True) -> -1
0 -> 1
-- ⋮
case
采用任意表达式,而不仅仅是单个变量,因此您可以编写类似
factorial x = case compare x 0 of
LT -> -1
EQ -> 1
GT -> ...
所以我正在尝试使用 case
表达式和 if else
制作递归阶乘函数,尽管我不知道如何为我的代码编写 <0
条件
factorial x = case of x
<0 -> -1
0 -> 0
.
.
.
我对Haskell完全陌生,所以请不要对我太苛刻。
你可以和守卫一起工作,例如:
factorial x
<b>| x < 0 = -1</b>
factorial 0 = 0
-- ⋮
或者我们可以将这些守卫添加到 case 语句中,如
factorial x = case x of
<b>x | x < 0 -> -1</b>
0 -> 0
-- ⋮
或者您可以使用 view patterns [Haskell gitlab wiki]:
{-# LANGUAGE <b>ViewPatterns</b> #-}
factorial x = case x of
((< 0) -> True) -> -1
0 -> 1
-- ⋮
case
采用任意表达式,而不仅仅是单个变量,因此您可以编写类似
factorial x = case compare x 0 of
LT -> -1
EQ -> 1
GT -> ...