簡體   English   中英

調用函數的haskell案例

[英]haskell case that calls a function

我已經待了很長時間了,我想不出什么錯Haskell只是讓我感到自己很笨

data Operation
    = Nth Integer


fib :: (Integral i, Integral j) => i -> j

fib   n | n == 0         = 1
        | n == 1         = 1
        | n == 2         = 1
        | n == 3         = 1        
        | otherwise = (fib(n-1)+fib(n-2))* fib(n-3) `div` fib(n-4)
main = do
command <- getLine
case command of
    Nth op -> show $ fib op
    Nothing -> "Invalid operation"

因此,當用戶輸入Nth 9時,需要使用n = 9調用fib函數並將輸出提供給用戶。 我覺得我的案例控制結構合適,但我根本無法使它正常工作!!!

你快完成了。 使用deriving (Read)讀取String作為Operation http://en.wikibooks.org/wiki/Haskell/Classes_and_types#Deriving

如果要處理讀取錯誤,請參見如何從Haskell的讀取函數中捕獲無解析異常?

data Operation = Nth Integer deriving (Read)

fib :: (Integral i, Integral j) => i -> j

fib   n | n == 0         = 1
        | n == 1         = 1
        | n == 2         = 1
        | n == 3         = 1
        | otherwise = (fib(n-1)+fib(n-2))* fib(n-3) `div` fib(n-4)
main = do
  command <- getLine
  print $ case read command of
    Nth op -> fib op

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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