- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Haskell prelude 函数能否简化为一组核心函数,以便所有其他函数都可以根据核心集来定义?如果有,核心功能是什么?
最佳答案
我刚刚浏览了 Hackage 上的 Prelude
文档。我无法想象在“朴素的”Haskell 中实现的唯一两个操作是 error
和 seq
。在错误
的情况下,我什至可以想象用正确的指称语义在朴素的Haskell中实现一些东西,但它不共享打印到控制台的操作语义。
当然,IO
操作的执行引擎和 IO
操作的实现之间需要进行一些合作,但操作本身可以合理地以朴素的方式实现 haskell ,例如对 Prelude 中可用的操作有一个免费的 monad。
如此微小的核心是可能实现的,这并不奇怪;毕竟,即使是无聊的旧 lambda 演算也可以模拟各种有趣的数据类型。
关于haskell - Haskell prelude 函数可以简化为一组核心函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34047126/
我正在寻找一个看起来与此类似的函数: 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
我是一名优秀的程序员,十分优秀!