[英]How do I use if/then/else or guards in a case statement in Haskell?
[英]How do I use "<0" condition in Haskell case
所以我試圖使用case
表達式和if else
來制作遞歸階乘 function 雖然我不知道如何為我的代碼編寫<0
條件
factorial x = case of x
<0 -> -1
0 -> 0
.
.
.
我對 Haskell 完全陌生,所以請不要對我太苛刻。
case
接受任意表達式,而不僅僅是單個變量,因此您可以編寫類似
factorial x = case compare x 0 of
LT -> -1
EQ -> 1
GT -> ...
您可以與警衛一起工作,例如:
factorial x
| x < 0 = -1
factorial 0 = 0
-- ⋮
或者我們可以將這些警衛添加到案例語句中,正如@Dan D. 所說:
factorial x = case x of
x | x < 0 -> -1
0 -> 0
-- ⋮
或者您可以使用視圖模式[Haskell gitlab wiki] :
{-# LANGUAGE ViewPatterns #-}
factorial x = case x of
((< 0) -> True) -> -1
0 -> 1
-- ⋮
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.