草庐IT

c++ - Haskell 将 (0/0) 设置为 qnan

我注意到Haskell(来自Windows上Haskell平台的ghci7.10.2)翻转了QNAN上的标志(0/0::Double)从我在C++中看到的(测试MSVSC++2013和cygwingcc4.9.2)。Haskell生成位模式0xfff8000000000000对于(0/0)(和-(0/0)产生0x7ff8...)。这与C++实现似乎相反。这里有一个测试程序来说明:importData.WordimportUnsafe.CoerceimportText.PrintfdblToBits::Double->Word64dblToBits=unsafeCoercetest::D

haskell - 在需要 LANGUAGE CPP 的模块上运行 ghci

我遇到了这个命令序列的问题:wgethttp://hackage.haskell.org/package/github-0.7.1/github-0.7.1.tar.gztarzxfgithub-0.7.1.tar.gzcdgithub-0.7.1ghcisamples/Users/ShowUser.hs我得到的错误是:Github/Private.hs:142:0:error:missingbinaryoperatorbeforetoken"("Github/Private.hs:148:0:error:missingbinaryoperatorbeforetoken"("phase

c++ - 从 C++ 调用 Haskell

我正在尝试从C++调用Haskell。我尝试使用this解释;并且已经在SO上问了一个问题.但是,我没有得到任何答案,所以我想重新制定一个最小的、完整的和可验证的示例。我正在使用Debian,这是我拥有的(在同一文件夹中):C++://main.cpp#include#include"Hello_stub.h"intmain(intargc,char**argv){hs_init(&argc,&argv);std::couthaskell://hello.hsmoduleHellowhereforeignexportccallhelloFromHaskell::IO()helloFro

c++ - 用 C++ 编写 Haskell 解释器(使用 ghc 或 hugs 作为库)

我正在编写一个需要解释和评估haskell代码的C++应用程序。此代码在编译时是未知的,而是由用户提供的。有没有办法将haskell编译器/解释器(如GHCi或hugs)用作库?我找到了FFI,但这似乎只适用于编译时已知的haskell代码。我找到了GHCAPI和提示,但它们似乎只在我想从haskell中解释haskell代码时才起作用。 最佳答案 我建议不要使用GHCapi,而是绑定(bind)到Hint对于这种特殊方法,它只是GHCapi的简化包装器。我推荐这个的原因是因为GHCapi的学习曲线有点陡峭。但无论如何,就像我在评论

java - 函数式编程 : How to carry on the context for a chain of validation rules

我有一组用于验证的函数(规则),它们以上下文作为参数并返回“Okay”或带有消息的“Error”。基本上这些可以返回一个Maybe(Haskell)/Optional(Java)类型。在下文中,我想验证Fruit(上下文)的属性,如果验证失败则返回错误消息,否则返回“Okay”/Nothing。注意:我更喜欢纯功能风格和无状态/不可变的解决方案。实际上,它有点像Kata。在我的实验中,我使用了Kotlin,但核心问题也适用于任何支持高阶函数的语言(例如Java和Haskell)。您可以找到linktothefullsourcecodehere和最底层的一样。给定一个带有颜色和重量的水果

java - 函数式编程 : How to carry on the context for a chain of validation rules

我有一组用于验证的函数(规则),它们以上下文作为参数并返回“Okay”或带有消息的“Error”。基本上这些可以返回一个Maybe(Haskell)/Optional(Java)类型。在下文中,我想验证Fruit(上下文)的属性,如果验证失败则返回错误消息,否则返回“Okay”/Nothing。注意:我更喜欢纯功能风格和无状态/不可变的解决方案。实际上,它有点像Kata。在我的实验中,我使用了Kotlin,但核心问题也适用于任何支持高阶函数的语言(例如Java和Haskell)。您可以找到linktothefullsourcecodehere和最底层的一样。给定一个带有颜色和重量的水果

c++ - Haskell 中的面向对象编程

我试图了解Haskell中的面向对象风格编程,因为我知道由于缺乏可变性,事情会有所不同。我玩过类型类,但我对它们的理解仅限于它们作为接口(interface)。所以我编写了一个C++示例,它是具有纯基和虚拟继承的标准菱形。Bat继承Flying和Mammal,和Flying和Mammal继承Animal.#includeclassAnimal{public:virtualstd::stringtransport()const=0;virtualstd::stringtype()const=0;std::stringdescribe()const;};std::stringAnimal:

c++ - 连接 Haskell 和 C++

我想在C++程序中调用一些Haskell函数。为此,我申请了these说明并根据我的代码和系统进行调整。目前我有以下内容:主程序.cpp共享头文件和cpp文件生成文件cpp/一些cpp和头文件haskell/你好.hs生成文件如下:CPP_SOURCES=main.cpptextures.cppcpp/game.cpp\cpp/piece.cppcpp/factories.cppcpp/utils.cppHASKELL_SOURCES=haskell/hello.hsall:main;./mainmain:$(CPP_SOURCES)HaskellPart.o;g++\-lsfml-g

windows - 如何在 WinGhci、Haskell 中设置标志

我对n+k模式有疑问。我想启用它,但我不知道如何。我在我的.hs文件的开头添加了{-#LANGUAGENPlusKPatterns#-},但它不起作用。我也尝试在我的ghci控制台中输入-NPlusKPatterns但它只会给我错误。 最佳答案 你需要输入:set-XNPlusKPatterns在ghci中启用它们。为了完整起见,我要指出,如果您从命令提示符加载ghci而不是运行winghci,您可以使用ghci-XNPlusKPatterns加载它,而不是交互式地执行:set-XNPlusKPatterns。您可以通过交互式定义n

windows - 在 Haskell 中获取本地 AppData 文件夹

我正在尝试使用Haskell以与版本无关的方式获取Window的本地AppData文件夹的位置,但我在这样做时遇到了一些麻烦。我已经尝试使用System.Win32.Registry库,并且能够获得下面的代码(经过反复试验),但我无法弄清楚如何使用regQueryValueEx或任何其他函数来获取我需要的值。importSystem.Win32.TypesimportSystem.Win32.RegistryuserShellFolders::IOHKEYuserShellFolders=regOpenKeyExhKEY_CURRENT_USER"Software\\Microsoft