草庐IT

haskell-gi

全部标签

ruby - 需要为 Proc 实现 Haskell 的翻转

Haskell的Prelude有一个有用的函数,可以交换函数的参数:http://zvon.org/other/haskell/Outputprelude/flip_f.html我需要在Ruby中做同样的事情。我不想仅仅定义一个自定义方法,而是想猴子修补Proc类,以便我可以将flip与Proc#curry一起使用。有点像f=lambda{|x,y|[x,y]}g=f.flip.curry.(2)为y提供一个值。我不知道如何重新打开Proc类来做到这一点。 最佳答案 classProcdeffliplambda{|x,y|self.

ruby - Haskell 通过 FFI 与 Ruby 绑定(bind)?

由于ruby和Haskell都支持FFI,是否可以通过FFI从ruby​​调用Haskell代码?Ruby中有任何Haskell绑定(bind)吗? 最佳答案 我对这个讨论有点迟了,但我目前正在编写Ruby和Haskell之间的桥梁。它位于http://github.com/mwotton/Hubris-它是在C级别工作的绑定(bind)。不过,仍处于非常早期的开发阶段。 关于ruby-Haskell通过FFI与Ruby绑定(bind)?,我们在StackOverflow上找到一个类似的

ruby - 你会如何用 Ruby 和/或 Haskell 编写这个 Clojure 片段?

我当时正在研究一个Rails模板,并试图编写一些代码,让我可以填充一个表或多列ul标签“从上到下”和“从左到右”,无论多少我指定的列。我刚刚掌握了Ruby的窍门,所以我无法弄清楚这一点。我也很好奇这个有用片段的惯用Haskell版本。感谢对Clojure版本的改进:(defntable[xs&{:keys[colsdirection]:or{cols1direction'right}}](into[](condp=direction'down(let[c(countxs)q(int(/ccols))n(if(>(modcq)0)(incq)q)](applymapvector(part

ruby - 为什么 Haskell 没有符号(像 ruby​​)/原子(像 erlang)?

我使用符号的两种语言是Ruby和Erlang,我总是发现它们非常有用。Haskell确实有代数数据类型,但我仍然认为符号会非常方便。立即想到的一个用途是,由于符号与整数同构,您可以在使用整数或字符串“主键”的地方使用它们。原子的语法糖可以是次要的-:something或是一个原子。所有原子都是一个名为Atom的类型的实例,它派生出Show和Eq。然后,您可以将其用于更具描述性的错误代码,例如typeErrorCode=AtomtypeMessage=StringdataError=ErrorErrorCodeMessageloginError=Error:redirect"Please

javascript - 使用 MVars 在 Haskell 中实现事件流

我想将以下JavaScript代码移植到Haskell:http://jsfiddle.net/mz68R/这是我尝试过的:importControl.ConcurrentimportData.IOReftypeEventStreama=IORef[MVara]newEventStream::IO(EventStreama)newEventStream=newIORef[]setEvent::EventStreama->a->IO()setEventstreamevent=readIORefstream>>=mapM_(`putMVar`event)getEvent::EventStr

javascript - replace(/[^a-z0-9]/gi, '' ) 和 replace(/[^a-zA-Z0-9]/g, '' ) 之间的区别

这两者有区别吗?replace(/[^a-z0-9]/gi,'');replace(/[^a-zA-Z0-9]/g,'');此外,使用一种或另一种在时间上是否存在显着差异?编辑:关于性能,我做了一些测试http://jsperf.com/myregexp-test 最佳答案 不,首先,末尾的i使正则表达式不区分大小写,这意味着它找到的字母是大写还是小写都没有关系。第二个匹配大小写字母,但要确保它们是大写或小写。所以你最终会得到相同的结果。 关于javascript-replace(/[^

javascript - 如何在整个 Web 应用程序堆栈中利用 Haskell 类型安全?

我想知道以CRUD为中心的Web应用程序可以从Haskell的类型系统中获益多少,尤其是当前端是使用JavascriptMVC框架(如AngularJS传递无类型数据对象)构建时。在我看来,一旦将Haskell数据类型转换为JSON对象,并将其传递给繁重的JavaScriptMVC框架层,将Haskell的类型系统作为Web堆栈的一部分的好处就会开始急剧下降,因为没有让类型检查器确保通过整个Web应用程序的数据流的类型完整性的方法。例如,您可以更改数据库模式和关联的Haskell类型,但类型检查器无法告诉您JavaScriptMVC前端的哪些部分也需要更新。我认为这是一个问题。我是否正

javascript - 这个编译为 JavaScript 的 Haskell 程序如何比 JavaScript 本身更快?

我一直认为,与手动编写和优化的代码相比,GHCJS生成的JavaScript程序非常慢,原因很明显。不过,在试用它时,我发现它并没有我预期的那么糟糕。我决定运行一系列小型基准测试以了解真实性能,而这个让我特别惊讶。该程序只是用“1”填充数组并将它们相加。haskell:importData.Array.Repalen=1024*1024*64arr=fromFunction(Z:.len)(const1)::ArrayDDIM1Floatmain=sumAllParr>>=printJavaScript:varlen=1024*1024*64vararr=[];varsum=0;for

xml - 没有 OverloadedStrings 的 Haskell xml-conduit?

我在网上看到的Haskell的xml-conduit模块的每个示例都使用OverloadedStringsGHC扩展(例如here)。我假设这是因为Text.XML.Cursor.element函数的类型为Name->Axis。例如,如果没有OverloadedStrings,此代码段将无法工作:{-#LANGUAGEOverloadedStrings#-}importText.XMLimportText.XML.CursorimportData.Text(Text)importData.Text.Read(decimal)importData.Monoid(mconcat)main:

xml - 在 Haskell 中解析 XML

我正在尝试学习一些Haskell,我想解析一些具有以下结构的XML文件:12按照wiki中的示例我可以通过以下方式搜索所有属性runX(readDocument[withValidateno]"my.xml">>>deep(isElem>>>hasName"properties")但是我怎样才能只提取propertyname="b"的值元素呢? 最佳答案 老实说,我发现HXT是一个使用起来相当复杂的库。到目前为止,我的理解是您使用箭头链将一个文档转换为另一个文档。如果你想学习箭头,你可能会发现我的解决方案是作弊,但对我来说它完成了工