繁体   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