我正在尝试从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
我正在编写一个需要解释和评估haskell代码的C++应用程序。此代码在编译时是未知的,而是由用户提供的。有没有办法将haskell编译器/解释器(如GHCi或hugs)用作库?我找到了FFI,但这似乎只适用于编译时已知的haskell代码。我找到了GHCAPI和提示,但它们似乎只在我想从haskell中解释haskell代码时才起作用。 最佳答案 我建议不要使用GHCapi,而是绑定(bind)到Hint对于这种特殊方法,它只是GHCapi的简化包装器。我推荐这个的原因是因为GHCapi的学习曲线有点陡峭。但无论如何,就像我在评论
我试图了解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函数。为此,我申请了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
我对n+k模式有疑问。我想启用它,但我不知道如何。我在我的.hs文件的开头添加了{-#LANGUAGENPlusKPatterns#-},但它不起作用。我也尝试在我的ghci控制台中输入-NPlusKPatterns但它只会给我错误。 最佳答案 你需要输入:set-XNPlusKPatterns在ghci中启用它们。为了完整起见,我要指出,如果您从命令提示符加载ghci而不是运行winghci,您可以使用ghci-XNPlusKPatterns加载它,而不是交互式地执行:set-XNPlusKPatterns。您可以通过交互式定义n
我正在尝试使用Haskell以与版本无关的方式获取Window的本地AppData文件夹的位置,但我在这样做时遇到了一些麻烦。我已经尝试使用System.Win32.Registry库,并且能够获得下面的代码(经过反复试验),但我无法弄清楚如何使用regQueryValueEx或任何其他函数来获取我需要的值。importSystem.Win32.TypesimportSystem.Win32.RegistryuserShellFolders::IOHKEYuserShellFolders=regOpenKeyExhKEY_CURRENT_USER"Software\\Microsoft
在安装了GHC的类UNIX系统上,我可以创建一个包含以下内容的文件#!/usr/bin/envrunhaskellmain=putStrLn"Hello,IamaUNIXscriptfile."使文件可执行,这将执行给定的Haskell代码。如何在Windows.bat文件中执行等效操作?最好不创建额外的文件,不设置环境变量,如果使用UNC路径或包含空格的路径访问批处理文件,Haskell命名空间不被污染,并且如果Haskell代码包含错误。 最佳答案 经过反复试验,事实证明这是可行的。我设计了以下内容:@(set/p=--这种机制
这一切都始于hdevtools。我在我的Windows7机器上安装了Sublime3的SublimeHaskell包,并收到一条警告,说找不到hdevtools,或者类似的东西。所以我想我可能会尝试使用Cabal安装该软件包。我安装了Cygwin,并且在我的路径中工作正常。我试试cabalinstallhdevtools我得到了一些可怕的东西:Resolvingdependencies...Configuringunix-2.7.0.1...Warning:Unknownextensions:CApiFFI,InterruptibleFFIconfigure:WARNING:unrec
Thisquestionisunlikelytohelpanyfuturevisitors;itisonlyrelevanttoasmallgeographicarea,aspecificmomentintime,oranextraordinarilynarrowsituationthatisnotgenerallyapplicabletotheworldwideaudienceoftheinternet.Forhelpmakingthisquestionmorebroadlyapplicable,visitthehelpcenter。9年前关闭。问题已解决!按照Dons发布的说明进行
当我使用removeDirectoryRecursive时在Windows上,将抛出类型为PermissionDenied的IOException以及消息“removeDirectoryRecursive:permissiondenied”。我确实具有删除目录所需的权限。对于具有相同内容的目录,在Linux上不会发生此问题。 最佳答案 如果要删除的目录包含只读文件,删除这些文件将在Windows上失败,但在Linux上不会。存在removePathForcibly,但只介绍了veryrecently.所以这里有一个小辅助函数可以递归