gpt4 book ai didi

haskell 模式匹配数(解构)

转载 作者:行者123 更新时间:2023-12-03 14:31:36 29 4
gpt4 key购买 nike

Haskell 中的模式匹配可以用这种方式解构数字吗:

f (n + 1) = n
我期望 ex 的前身:f 6 = 5、f 5 = 4 等。
我在这里找到了这种模式匹配用法:
https://wiki.haskell.org/Continuation
 facCPS :: a -> (a -> r) -> r
facCPS 0 k = k 1
facCPS n'@(n + 1) k = facCPS n $ \ret -> k (n' * ret)
facCPS 4 (+ 2) :: Integral a => a
但在我的 ghci 中它不起作用:
前奏> f (n + 1) = n
:4:12: 错误:模式中的解析错误:n + 1
也许需要添加一些选项?我可以以某种方式使用模式匹配吗?

最佳答案

使用您引用的 wiki 中的示例:

{-# LANGUAGE NPlusKPatterns #-}
fac :: Integral a => a -> a
fac 0 = 1
fac n'@(n + 1) = n' * fac n
这在 2010 年从语言中删除,但 Haskell 仍然是一种非常可配置的语言。 :)

关于haskell 模式匹配数(解构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64605662/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com