- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码
import Data.List
data Card = One
| Two
| Three
| Four
| Five
| Six
| Seven
| Eight
| Nine
| Ten
| J
| Q
| K
| A
deriving (Show, Eq, Ord, Enum)
data Hand = Hand Card Card Card Card Card deriving(Show)
largestCard :: Hand -> Card
largestCard (Hand a b c d e) = One
但是,当我尝试在 GHCi 中使用 toEnum 3
时,我得到 Exception: Prelude.Enum.().toEnum: bad argument
。如何解决这个问题?
最后一个函数只是一个虚拟函数。现在它什么也没做。
最佳答案
toEnum
的类型是
toEnum :: Enum a => Int -> a
GHCi 没有上下文来确定您想要在 toEnum 3
中使用哪个 Enum
实例,因此 by default它提供类型()
。该类型只有一个值 ()
,因此除 0
之外的任何值都将无效。
以下是在 GHCi 中调用 toEnum
的一些示例:
λ> toEnum 0
()
λ> toEnum 1 :: Bool
True
λ> toEnum 3 :: Card
Four
您还可以使用type applications :
λ> :set -XTypeApplications
λ> toEnum @Bool 1
True
λ> toEnum @Card 3
Four
关于Haskell 异常 : Prelude. Enum.().toEnum:错误的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906601/
我正在寻找一个看起来与此类似的函数: withSelf :: (a -> b) -> a -> (a, b) withSelf f x = (x, f x) 我已经用 Hoogle 搜索过这样的功能;
当我想重新编译 xmonad 来更改配置时,我得到了这个: Implicit import declaration: Ambiguous module name `Prelude':
我目前正在尝试查找 words 函数的定义,以帮助了解我正在编写的类似函数。所以我想知道是否有某个地方包含 Prelude 函数的所有定义?也许是一个 GHCi 命令来显示一个的定义,或者 Haske
我现在正在玩 Monoids 并想定义我的 <> 实例和 mempty一个列表。我写了这个: instance Semigroup [a] where (<>) = (++) instance M
在一个文件中,我需要使用常规前奏 (++)运算符(operator),我也希望为 (++) 实现我自己的行为.我用过import Prelude hiding (++)在我的文件顶部,定义了我自己的
我正在测试一些喜欢将内容输出到文件的东西,它有一个中文名称。 该文件将使用正确的内容而不是文件名成功创建。 我看看函数writeFile ^1它使用 String 表示文件名. 所以我怀疑这可能是根本
我是answering a question并编写了一些代码来完成工作。 isPrime :: Int -> Bool isPrime n = primeCheck n $ floor $ sqrt
这个问题在这里已经有了答案: Why recursive `let` make space effcient? (3 个回答) 8年前关闭。 重复 is defined如下: repeat :: a
出于某种原因,它告诉我在我尝试遵循 rust 病IRC的示例时未声明它,并且没有用,这是没有意义的,因为我以前使用过这样的库,并且在此之前就可以使用了,所以idk是什么发生 代码: use futur
Haskell prelude 函数能否简化为一组核心函数,以便所有其他函数都可以根据核心集来定义?如果有,核心功能是什么? 最佳答案 我刚刚浏览了 Hackage 上的 Prelude 文档。我无法
我决定将自己的 Prelude 用于更大的项目(包含一些库和一些可执行文件)。 Prelude 不导出一些部分函数,而是导出一些常用函数(即来自 Control.Monad 等)。然而,我正在与如
这个问题已经有答案了: Why recursive `let` make space effcient? (3 个回答) 已关闭10 年前。 重复is defined如下: repeat :: a -
这个问题已经有答案了: Why does foldr use a helper function? (4 个回答) 已关闭 3 年前。 我正在研究一些前奏函数来教同事递归,我发现有些函数的编写方式相当
我无法在我的代码中弄清楚是什么函数引发了 (*** Exception: Prelude.!!: negative index 因为这个异常对错误的描述不是很清楚。有什么办法吗准确检测调用 !! 并引
我是haskell的新手,我编写了项目详细信息的代码并搜索了每个项目的详细信息。 type Code = Int type Name = String type Database = (Code,Na
在 Idris ch 的类型驱动开发中。 4,他们说 The Prelude also defines functions and notation to allow Nat to be used l
在 Emacs Prelude 中,当存在与文件名“匹配”的文件时,我不知道如何创建新文件。 在示例屏幕截图中,我试图在一个目录中创建一个名为 spawn.exs 的文件,该目录已经包含一个名为 sp
我做了一些运行: main = print $ head . drop (2^30) $ [1..] — 两者兼具 Prelude.drop和一个微不足道的 drop . Prelude 变体始终快约
我刚刚意识到我可以定义自己的 Prelude 模块并仔细控制它的导出。 这被认为是不好的做法吗? 优点: 无需在大型项目中重复导入“通用”模块。 无需写“导入前奏隐藏(catch)”。 最佳答案 一般
我的代码抛出空列表错误。当我运行时: makeAgent :: Agent -> [Agent] -> Agent makeAgent (Agent func n _) agents = (Agent
我是一名优秀的程序员,十分优秀!