草庐IT

haskell-wai

全部标签

c++ - haskell FFI : Interfacing with simple C++?

就我目前所读的内容而言,将FFI与C++结合使用非常难以实现。最大的原因之一似乎是将C++对象转换为Haskell。我现在的问题是我没有任何C经验,但有几年C++经验,而且我更喜欢OOP。因此,自然而然地想从C++中受益。那么我可以编写专供HaskellFFI使用的C++程序来解决这些问题吗?C++可以在幕后做任何事情,但API会像C一样,即我不交换对象,没有重载的顶级函数等等。有什么需要注意的陷阱吗?(将我的项目与您可能熟悉的项目进行比较:考虑使用SciPy的Weave来加速Python代码。) 最佳答案 是的,如果您在C++代码

ios - XCODE/IOS - 如何使用独占扩展立即呈现 whatsapp (.wai, .waa, .wam)

有什么方法可以使whatsapp的那部分工作documentinteractionAPI:Alternatively,ifyouwanttoshowonlyWhatsAppintheapplicationlist(insteadofWhatsAppplusanyotherpublic/*-conformingapps)youcanspecifyafileofoneofaforementionedtypessavedwiththeextensionthatisexclusivetoWhatsApp:images-«.wai»whichisoftypenet.whatsapp.imagev

使用Haskell查找置换

我试图弄清楚如何从集合{排列[1..n]}中找到偶数排列。我之前曾在另一个论坛上问这个问题,并得到一个有效的答案,即代码是:ImportData.List--numberofinversionsinapermutationinversionsas=sum$mapgo(tailsas)wherego[]=0go(x:xs)=length$filter(我了解代码中的最后一行:alternatingn=[p|p。那就是p集合{permutations[1..n]}使它们甚至是排列。功能evenPerm我认为我也明白。这只是集合的偶数元素{inversionas}。我真正不理解它如何工作的事情是反转

了解Haskell中的类型关键字

从我对类型关键字的理解,type关键字创建同义词。typeString=[Char]但是我该如何解释这样的事情:typeNewtype=BoolIntString看答案正如人们可以阅读的那样文档:2类型和newtype人们可以将类型引入Haskell程序的其他两种方式是通过type和newtype语句。type引入同义词对于类型并使用相同的数据构造函数。(..)使用类型声明时,类型的同义词及其基本类型几乎在任何地方都互换(处理实例声明时有一些限制)。所以type=只需重命名A(通常更复杂)的类型表达式即可。结果,第二个代码片段是无效的.但是,可能有高阶类型喜欢:typeAlias=Either

为什么将这种haskell函数推断为这种类型?

我是Haskell的初学者,通过现实世界Haskell的第2章练习工作,您可以编写一个返回列表中二次元素的函数。我已经编写了以下功能来解决此问题:--file:\LearnHaskell\lastButOne.hslastButOnexs=iflengthxs==2thenheadxselselastButOnetailxs我不明白的是编译器抛出的错误:lastButOne.hs:2:1:error:•Couldn'tmatchtype‘[a]->[a]’with‘[t]’Expectedtype:([a]->[a])->[t]->tActualtype:[t]->t•Relevantbind

php - 使用 PHP 作为 "front end"的 Haskell Web 应用程序

Haskell网络开发世界发生了很多伟大的事情,一些可用的框架(Yesod和Snap服务器)似乎相当成熟。然而,学习曲线可能有点陡峭,也许构建Web应用程序不能完全被视为Haskell的强项。另一个SOquestionofmine的答案表明在Haskell中编写PHP扩展应该是可能的。事实上,我目前正在尝试将一个小型Haskell程序转换为一个PHP扩展,作为概念验证。所以,问题是-是否有必要创建一个Haskell网络框架,作为PHP扩展运行,并将所有请求/响应/cookie等留给PHP处理?创建这样一个框架涉及哪些设计决策?现在,我唯一能想到的是它可能会公开一个XML/JSONAPI

状态单:如何在Haskell中``print`印刷中级价值''

我是Haskell的新手,我有遵循代码moduleStateTestwhereimportControl.Monad.State.Lazytick::StateIntInttick=donIntplusOne=execStatetickmain=print$plusOne1我想打印状态价值之后put(n+1)并继续这样的计算tick=don整个代码如何遵循?看答案如果要在状态计算中运行IO操作,则可以更改tick返回StateTIntIOInt并使用liftIO。那么您可以使用execStateT:importControl.Monad.State.LazyimportControl.Mona

Haskell功能定义无法正常工作

我是功能编程和Haskell的新手。试图学习它。不确定以下定义有什么问题:test.h中的功能定义drop5[a]=drop5[a]尝试使用此功能我会发现程序错误$:loadtest.h$drop5[2,3,4,5,6,7,8]Programerror:patternmatchfailure:drop5[2,3,4,5,6,7,8]$:tdrop5drop5::[a]->[a]当我将定义更改为遵循它时;这意味着它获取列表并删除列表的前5个元素drop5ns=drop5ns在这种情况下,当打印类型时,我会看到:$:tdrop5drop5::[a]->[a]我不确定为什么第一个定义与第二定义不同?

c++ - 将图像从 C++ 传递给 Haskell 并取回一个字符串

我想使用图像作为参数从C++调用Haskell函数。它只是一个无符号字符数组,包含有关宽度和高度的信息(以像素为单位)。到目前为止,我已经有了这个工作代码。--Stuff.hsmoduleStuffwhereimportData.ListimportData.WordimportqualifiedData.Vector.UnboxedasVimportForeign.PtrimportForeign.StorableimportForeign.C.TypesimportForeign.C.StringimportForeign.Marshal.ArrayimportForeign.Ma

c++ - Haskell IO monad 的 C/C++ 包装器

我想从C/C++调用Haskell函数。我已经阅读了一些与该主题相关的教程,但是其中没有涉及IOmonad调用。特别是,我想调用一个使用interact函数的函数(interact::(String->String)->IO())。我不明白在这种情况下如何使用函数?如何在C/C++包装器中声明函数?如何在C/C++和Haskell之间转移标准输入/输出的控制(在C/C++代码中)? 最佳答案 我将让这个答案相对简短,因为大部分内容都包含在FFIdocumentation中。.您可以通过在C中按名称调用函数来使用它们。函数必须声明为f