haskell - 如何编译第一个haskell程序
问题描述
我想开始学习haskell,但我无法让它工作,所以基本上我已经安装了堆栈,使用stack new 命令创建了一个新项目。我还运行堆栈更新,堆栈升级。现在我有一个应用程序文件夹,一个源文件夹和更多的东西。我真的承认我完全不知道我在做什么但是我在文档中看到每个命令和堆栈本身都得到了很好的解释。但是这是一个非常理论的解释,我只是想运行我的第一个 hello world 程序,就像我在迄今为止所学的每种编程语言中所做的那样:)。你能帮帮我吗?这是我项目目录当前结构的屏幕截图。dir 结构的图像。如您所见,我也尝试运行 ghc 或 ghci 命令,但没有任何运气。在此先感谢 ;)
解决方案
我将在这里发表一个有争议的观点,并说如果你想要的是一个最少大惊小怪的 hello-world,那么 stack 不是正确的工具。直接使用 GHC 即可。只需制作一个文件,例如,hello.hs
包含:
main = putStrLn "Hello, world!"
然后在命令行中,您可以执行以下操作来运行它;这里有三个选项,你只需要选择一个。
% runhaskell hello.hs
Hello, world!
% ghc hello.hs
[1 of 1] Compiling Main ( test.hs, test.o )
Linking hello ...
% ./hello
Hello, world!
% ghci hello.hs
> main
Hello, world!
如果您在 Windows 上,您可能需要稍微调整一些命令;我认为主要是./hello
这样hello.exe
。
推荐阅读
- python - 打印 3D 网格搜索以实现超参数可视化
- javascript - JavaScript QuerySelector 不返回最后一个孩子
- wso2-am - 无法在 wso2-am 3.0 中更改 api-manager.xml
- javascript - AJAX 调用失败,url 路径是否正确?
- google-calendar-api - Google Calendar Events Watch 400 pushNotSupportedForRequestedResource
- powershell - “目标计算机上的 PowerShell”任务失败,并在 TFS 2017\Azure Dev Ops 中出现错误
- python - 用线条绘制 df
- python - 将 .csv 文件的第一列复制到新文件中
- node.js - `require()` 将字符串文字“true”转换为布尔值 true
- azure - Azure 前端门显示“我们的服务现在不可用”与服务结构集群