问题标签 [haskell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Haskell Typeclass 速记
因此,我有一对类型类,我将经常一起使用它们,并且我想避免每次都指定它们。基本上,而不是把
在我所有类型规范的开头,我宁愿把
所以,我最初的想法是声明一个新的类型类
但这并没有像我希望的那样自动工作:
手动创建实例似乎很麻烦,所以接下来,我想我可能会尝试自动创建实例:
但是编译器不喜欢这样:
那么有没有办法我可以做到这一点?
haskell - Haskell 函数定义和缓存数组
我有一个关于在 Haskell 中使用数组实现缓存(记忆)的问题。以下模式有效:
但这不是(程序的速度表明每次调用或其他东西都会重新创建数组):
在 where 子句之外(在“全局范围”中)定义 fA 也适用于任一模式。
我希望有人能指出我对上述两种模式之间区别的技术解释。
请注意,我使用的是最新的 GHC,我不确定这只是编译器的特性还是语言本身的一部分。
编辑: !用于数组访问,所以 fA !5 表示 C++ 语法中的 fA[5]。我对 Haskell 的理解是 (fA !) n 将与 (fA ! n) 相同......而且对我来说写“fn = fA ! n”(不带括号)会更传统。无论如何,无论我如何括号,我都会得到相同的行为。
haskell - haskell 类型类中的多个类型参数
我正在尝试在 Haskell98 中进行一些抽象,但不知道该怎么做。
我想做的是为可以转换为列表的类型定义一个类。
但我不知道如何为这个方法定义一个类。我提出了以下三个想法:
第一个不起作用,因为 Haskell98 不允许多个参数类。
第二个不起作用,因为 b 依赖于 a 并且不能为每个 b 实现。
第三个也不起作用,因为我不知道如何用“b”不是最后一个类型参数的类型来实例化类。
或者
我该怎么做这样的事情?
math - 如何简化基本算术表达式?
如何简化基本算术表达式?
例如
我需要做什么?
我想到的简化是:
并简化常量子表达式,例如 Plus (Const 1) (Const 2) 将变为 Const 3。我不希望变量(或变量和常量)被连接:Var "st" 与 Var "s" 不同。
我想要实现的是创建一个像上面那样的模块,它使用一个名为simplify :: Expr->Expr
haskell - haskell中的代数类型
如何使用基本算术简化表达式?
haskell - 将表达式转换为字符串表示?
考虑以下 Haskell 代码:
如何将表达式转换为字符串表示?
例如
haskell - 原始递归
我将如何使用原始递归定义函数“简化”?
简化 :: Expr -> Expr
...
简化 使用基本算术简化表达式,例如简化 (Plus (Var "x") (Const 0)) = Var "x"
haskell - Haskell 中的符号简化(使用递归?)
我怎样才能给出一个包含以下所有表达式的一般规则?例如,一个表达式,另一个用于 sub 和一个用于 mult。我需要使用递归,但我很困惑......
haskell - How do I simplify the below expressions using primitive recursion?
Possible Duplicate:
Symbolic simplification in Haskell (using recursion?)
The simplifications I have in mind are
and simplifying constant subexpressions, e.g. Plus (Const 1) (Const 2)
would become Const 3
. I would not expect variables (or variables and constants) to be concatenated: Var "st"
is a distinct variable from Var "s"
.
For example simplify(Plus (Var "x") (Const 0))= Var "x"
haskell - 理解类型错误:“预期签名 Int*Int->Int 但得到 Int*Int->Int”
Steve Yegge关于服务器端 Javascript的帖子的评论开始讨论语言中类型系统的优点,该评论描述了:
...来自HM风格系统的示例,您可以在其中获得以下内容:
你能举一个函数定义的例子(或两个?)和一个会产生该错误的函数调用吗?看起来在大型程序中调试可能非常困难。
另外,我可能在Miranda看到过类似的错误吗?(我已经 15 年没用过了,所以我对它的记忆很模糊)