大概倒腾了一周才搭建好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开发环境搭建过程的更多相关文章

  1. kakfa源代码开发环境搭建过程中的错误处理

    在window上搭建kafka的源代码开发环境,主要参考如下的blog: http://www.bubuko.com/infodetail-695974.html    << Window ...

  2. angular2最详细的开发环境搭建过程

    本文所需要的源代码,从 http://files.cnblogs.com/files/lingzhihua/angular2-quickstart.rar 下载 angular官方推荐使用quicks ...

  3. Forward团队-爬虫豆瓣top250项目-团队编程项目开发环境搭建过程

    本次结对编程和团队项目我都需要用python环境,所以环境的搭建是一样的.(本文部分内容引用自己博客:http://www.cnblogs.com/xingyunqi/p/7527411.html) ...

  4. 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上对程序的开发调试,使我们能确保程序放到 ...

  5. MAPR 开发环境搭建过程记录

    我下载了MAPR 官方提供的virtualbox 和 vmware版本的sandbox进行试用. 开始试用了一会vmware版的,因为不太熟悉vmware的操作,而且vmplayer经常没有反应,后来 ...

  6. 【甘道夫】HBase开发环境搭建过程中可能遇到的异常:No FileSystem for scheme: hdfs

    异常: 2014-02-24 12:15:48,507 WARN  [Thread-2] util.DynamicClassLoader (DynamicClassLoader.java:<in ...

  7. 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)运行的是 ...

  8. monkeyrunner之安卓开发环境搭建(一)

    在学习monkeyrunner之前,让我们先搭建好eclipse安卓开发环境. 对于程序开发人员而言,eclipse并不陌生,它提供了一个非常广阔的平台来开发程序.同样也可以用它来开发android程 ...

  9. [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建

    [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建 1.概述 读前必备:认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET ...

随机推荐

  1. k8s volume存储卷(四)

    介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的v ...

  2. E04 【买衣服】Do you have this T-shirt in red?

    核心句型 Do you have this T-shirt in red? 这样的T恤衫,你们有红色的吗? 场景对话: A:Excuse me,do you have this T-shirt in ...

  3. 【oracle】迁表结构和数据

    背景:把一些表和数据从某库迁到另一个库 1.命令框: exp yktsh/yktsh_2019@orcl30 file=d:\yktsh20191201.dmp log=d:\daochu; exp ...

  4. Taro/微信小程序解析XML

    npm i xmldom PS: https://www.npmjs.com/package/xmldom https://blog.csdn.net/caojie1008/article/detai ...

  5. 使用PAC文件来管理代理连接

    生成PAC文件 谷歌浏览器插件商店安装SwitchyOmega,找到立即更新模式,然后导出PAC文件 使用PAC文件 pac采用js编写 Windows Windows上面使用PAC文件很简单,新建一 ...

  6. 关于Windows自动化卸载软件的思路

    思路 关于控制面板“卸载”关联到的exe是这样的: 注册表:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall ...

  7. DVWA CSRF 通关教程

    CSRF 介绍 CSRF,全称Cross-site request forgery,即跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie.会话等),诱骗其点击恶意链接或者访问包含攻击代码 ...

  8. windows远程复制中断无法复制

    关掉对应的rdpclip进程,再创建一个

  9. Elasticsearch由浅入深(九)搜索引擎:query DSL、filter与query、query搜索实战

    search api的基本语法 语法概要: GET /_search {} GET /index1,index2/type1,type2/_search {} GET /_search { , } h ...

  10. C# HTTP系列2 HttpWebReponse类

    系列目录     [已更新最新开发文章,点击查看详细] System.Net.HttpWebReponse 类提供 WebResponse 类的特定于HTTP的实现. 例子 下面的示例返回一个从Htt ...