费劲周折的Haskell开发环境搭建过程
大概倒腾了一周才搭建好Haskell的开发环境,遇到了很多莫名其妙的问题。
首先,Haskell实在是够冷门,中文网站上的信息实在有限。仅有的一些安装教程分享都感觉不大靠谱,所以我还是直接去外网找吧。
开始是想在Windows上安装:
官网说明了多种安装方式,一开始我用'Haskell Platform',可是安装完GHC之后、使用stack视图安装那一大堆依赖时,却屡屡报错,搞得我很烦。
最后在stack这个工具的github项目主页上,发现了一个issue,提出Windows的用户名若不是英文的、stack就无法正常工作!
随后搬出了我的MacBook (还好之前没当二手货卖掉),
并找到了一套很赞的系列指导:<Haskell without the theory>,
这位作者在这套教程中从 如何搭建Haskell开发环境——> 如何建立Haskell Project ——> 如何管理依赖 ——> Haskell编程入门,太感谢了。
我的Haskell环境:stack + ghc
IDE采用:VS Code + 插件Haskell IDE Engine + hoogle插件 + 自行配置TM Scope语法着色
Haskell相关的工具链:
可参考:红尘里的Haskell(之一)——Haskell工具链科普
另外:
- Haskell的最流行的编译器实现是 GHC (Glasgow Haskell Compiler)
- stack是标配工具(不要用cable), 用于项目构建、依赖管理
- GHCi 是提供的REPL
- Hackage / Stackage是Haskell依赖包的发布平台。 其中的snapshots又提供 LTS (Long Term Support)的阶段性更新稳定版本 和 每天更新的 nightly版本。
- Haskell是由社区进行维护的: Haskell.org的 Documention下整合了大量资源的入口,非常用心。
- Haskell Wiki和 wiki上的Haskell Wikibook质量很高
- FPComplete

Done.终于可以正式开始敲代码了。
费劲周折的Haskell开发环境搭建过程的更多相关文章
- kakfa源代码开发环境搭建过程中的错误处理
在window上搭建kafka的源代码开发环境,主要参考如下的blog: http://www.bubuko.com/infodetail-695974.html << Window ...
- angular2最详细的开发环境搭建过程
本文所需要的源代码,从 http://files.cnblogs.com/files/lingzhihua/angular2-quickstart.rar 下载 angular官方推荐使用quicks ...
- Forward团队-爬虫豆瓣top250项目-团队编程项目开发环境搭建过程
本次结对编程和团队项目我都需要用python环境,所以环境的搭建是一样的.(本文部分内容引用自己博客:http://www.cnblogs.com/xingyunqi/p/7527411.html) ...
- LINUX下QT FOR ARM开发环境搭建过程 (使用qt-x11-opensource-src-4.5.2.tar.gz进行编译)
在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括了Qt Designer等基本工具,用于在PC上对程序的开发调试,使我们能确保程序放到 ...
- MAPR 开发环境搭建过程记录
我下载了MAPR 官方提供的virtualbox 和 vmware版本的sandbox进行试用. 开始试用了一会vmware版的,因为不太熟悉vmware的操作,而且vmplayer经常没有反应,后来 ...
- 【甘道夫】HBase开发环境搭建过程中可能遇到的异常:No FileSystem for scheme: hdfs
异常: 2014-02-24 12:15:48,507 WARN [Thread-2] util.DynamicClassLoader (DynamicClassLoader.java:<in ...
- Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建
目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...
- monkeyrunner之安卓开发环境搭建(一)
在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程 ...
- [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建
[.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...
随机推荐
- 爬虫---Beautiful Soup 反反爬虫事例
前两章简单的讲了Beautiful Soup的用法,在爬虫的过程中相信都遇到过一些反爬虫,如何跳过这些反爬虫呢?今天通过知乎网写一个简单的反爬中 什么是反爬虫 简单的说就是使用任何技术手段,阻止别人批 ...
- 2019第一期《python测试开发》课程,10月13号开学
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
- vscode使用插件来添加文件说明和函数说明——42header——psioniq File Header——koroFileHeader
安装号以后,设置快捷键如下: 同时需要根据自己的需要的修改json文件 // 文件头部注释 "fileheader.customMade": { "Description ...
- idea中怎么忽略(ignore)掉 .idea等文件
idea需要下载一个专门的plugins 来ignore .idea *.iml等文件 可以在https://plugins.jetbrains.com/idea/plugin/7495–ignore ...
- Spring 中的异常处理
工作中遇到这样的同事,问他活干完吗,他说开发好了,结果测试时发现各种异常情况未处理,联调测试时各种未知错误,最后联调完成比他预期的两倍工作量还多.这样的开发如果是新人还可以原谅,如果有工作经验且出现多 ...
- pytest--fixture
前戏 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...
- [LeetCode] 374. Guess Number Higher or Lower 猜数字大小
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- 面试:Semaphore(信号量)的成长之路
2019最寒冷,面试跳槽不能等 马上就3月份了,所谓的金三银四招聘季.2019年也许是互联网最冷清的一年,很多知名的大型互联网公司都裁员过冬.当然也有一些公司还在持续招人的,比如阿里就宣称不裁员,反而 ...
- GreenPlum 大数据平台--segment 失效问题恢复
1,问题检查 [gpadmin@greenplum01 conf]$ psql -c "select * from gp_segment_configuration where status ...
- 一、WebAPI自定义过滤器的使用
一.WebAPI自定义过滤器的使用 1.注册过滤器 using System.Web.Http; using KYINT.WebAPIService.Handler; namespace KYINT. ...