Questions tagged «haskell»

Haskell是一种功能性编程语言,具有强大的静态类型,惰性评估,广泛的并行性和并发支持以及独特的抽象功能。

11
Windows的Haskell IDE?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 6年前关闭。 改善这个问题 我真的在搜索这个。(E / TextMate是我在本主题中找到的最接近的,但似乎没什么大不了的) 我尝试了emacs,但似乎没有找到适用于Windows的Haskell模式。 我可以尝试VIM,但是Haskell模式在Windows上可以使用吗? 感叹……一直都有“亲密无间”的感觉。 在Windows下对Haskell进行编程真的有吗?
71 windows  haskell  ide 

1
Haskell Array.Accelerate-forkOS错误
我试图绘制一些Data.Array.Accelerate计算的输出时gnuplot遇到一个奇怪的问题。通过解释器运行时,一切都很好,就像绘制直接的Haskell数据或仅打印Accelerate值一样,但是尝试绘制Accelerate数据会失败。给出的错误是forkOS_entry: interrupted。 从那以后,我意识到我应该变得更加UNIXy,并且在每个程序中都做一件事。但是我有兴趣找出失败的原因。我在下面包括一个最小代码示例。 import Prelude hiding (zip,zipWith) import Graphics.Gnuplot.Simple import Data.Array.Accelerate -- import Data.Array.Accelerate.Interpreter import Data.Array.Accelerate.CUDA f :: Vector Float -> Vector Float -> Acc (Vector Float) f xs ys = let xs' = use xs ys' = use ys in (zipWith (*) xs' ys') n=10::Int points = toList.run $ …
71 haskell  plot  gnuplot  gpu 

2
什么是超级编译?
简短而甜蜜:我看过一些有关“超级编译”的消息。但是我尚未在互联网上的任何地方找到一个描述这是什么的单一文档。大概是因为它对任何人来说似乎都很简单,甚至不值得解释。 有人知道这到底是什么吗?

8
逻辑编程与功能编程之间的区别
我读过许多文章试图理解功能和逻辑编程之间的区别,但是到目前为止,我唯一能得出的结论就是逻辑编程通过数学表达式定义程序。但是这种事情与逻辑编程无关。 我真的很希望能对函数式编程与逻辑编程之间的区别有所了解。

11
应用风格的实际用途是什么?
我是Scala程序员,现在正在学习Haskell。很容易找到面向对象概念的实际用例和现实示例,例如装饰器,策略模式等。书和互连网充满了它。 我意识到功能性概念并非如此。恰当的例子:应用剂。 我正在努力为应用程序找到实际的用例。几乎所有的教程和书籍的我所遇到到目前为止提供的示例[]和Maybe。我希望应用程序能够比FP更加适用,因为他们在FP社区中得到了所有关注。 我认为我理解了应用程序的概念基础(也许我错了),并且我一直在等待启蒙的时刻。但这似乎没有发生。从来没有在编程时,我有一阵子会高兴地喊着:“尤里卡!我可以在这里使用应用程序!” (同样,for[]和除外Maybe)。 有人可以指导我如何在日常编程中使用应用程序吗?如何开始发现图案?谢谢!

2
单子vs箭
我对函数式编程中使用的monad和箭头的概念非常熟悉。我也了解它们可以用来解决类似的问题。 但是,对于在任何给定情况下如何选择要使用的选项,我仍然有些困惑。 什么时候应该使用monad,什么时候应该使用箭头?





2
最新GHC中不推荐使用的DatatypeContexts:为什么?
我只是在进行一些Haskell开发,并在新版本的GHC上重新编译了一些旧代码: The Glorious Glasgow Haskell Compilation System, version 7.2.1 当我这样做时,我收到以下错误: 警告:-XDatatypeContexts已过时:普遍认为它不适合使用,已从Haskell语言中删除。 当您使用以下格式的代码时,将显示该消息: data Ord a => MyType a = ConstructorOne a | ConstructorTwo a a 我的问题是:为什么首先不赞成使用此功能,而我应该怎么做才能实现相同或相似的功能?

5
什么是箭头,我该如何使用?
我试图学习箭头的含义,但我不理解它们。 我使用了Wikibooks教程。我认为Wikibook的问题主要是它似乎是为已经了解该主题的人编写的。 有人可以解释什么是箭头以及如何使用它们吗?
70 haskell  arrows 

3
什么是skolems?
eek!GHCi在我的代码中找到了Skolems! ... Couldn't match type `k0' with `b' because type variable `b' would escape its scope This (rigid, skolem) type variable is bound by the type signature for groupBy :: Ord b => (a -> b) -> Set a -> Set (b, [a]) The following variables have types that mention …

1
将类型与数据构造函数相关联的ADT编码有什么问题?(例如Scala。)
在Scala中,代数数据类型被编码为sealed一级类型层次结构。例: -- Haskell data Positioning a = Append | AppendIf (a -> Bool) | Explicit ([a] -> [a]) // Scala sealed trait Positioning[A] case object Append extends Positioning[Nothing] case class AppendIf[A](condition: A => Boolean) extends Positioning[A] case class Explicit[A](f: Seq[A] => Seq[A]) extends Positioning[A] 随着case classES和case objectS,斯卡拉产生了一堆东西一样equals,hashCode,unapply(通过模式匹配使用)等这使我们许多关键特性和传统的ADT功能。 但是,有一个关键的区别–在Scala中,“数据构造函数”具有自己的类型。比较以下两个示例(从相应的REPL复制)。 // Scala …

4
Haskell的<|>运算符做什么?
对于我而言,仔细阅读Haskell的文档总是很痛苦,因为您所获得的有关某个功能的所有信息通常仅不过是:f a -&gt; f [a]这可能意味着很多事情。 与&lt;|&gt;功能一样。 我所得到的就是:(&lt;|&gt;) :: f a -&gt; f a -&gt; f a这是“关联二进制操作” ... 通过检查,Control.Applicative我了解到它确实与实现无关,取决于实现。 instance Alternative Maybe where empty = Nothing Nothing &lt;|&gt; r = r l &lt;|&gt; _ = l 好的,所以如果没有左,它就返回右,否则它就返回左,陷阱。。这使我相信它是一个“左或右”运算符,考虑到它的使用|和|作为“或”的历史用法,这有点有意义” instance Alternative [] where empty = [] (&lt;|&gt;) = (++) 除了这里,它只是调用list的串联运算符...分解我的想法... 那么那个功能到底是什么呢?有什么用?它在宏伟的计划中适合什么地方?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.