簡體   English   中英

如何在 Haskell 案例中使用“<0”條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM