Mac OS X 上的安装haskell开发环境
到haskell官方下载haskell的工具包:
https://downloads.haskell.org/~platform/2014.2.0.0/Haskell%20Platform%202014.2.0.0%2064bit.signed.pkg
adeMacBook-Pro:haskell_dev apple$ ghci GHCi, version : http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> putStrLn "Hello World" Hello World Prelude>
参考文档:
http://rwh.readthedocs.org/en/latest/chp/1.html
解析:
把下面这段代码保存成SimpleJSON.hs
-- file: ch05/SimpleJSON.hs
data JValue = JString String
            | JNumber Double
            | JBool Bool
            | JNull
            | JObject [(String, JValue)]
            | JArray [JValue]
              deriving (Eq, Ord, Show)
-- file: ch05/SimpleJSON.hs
getString :: JValue -> Maybe String
getString (JString s) = Just s
getString _           = Nothing
-- file: ch05/SimpleJSON.hs
getInt (JNumber n) = Just (truncate n)
getInt _           = Nothing
getDouble (JNumber n) = Just n
getDouble _           = Nothing
getBool (JBool b) = Just b
getBool _         = Nothing
getObject (JObject o) = Just o
getObject _           = Nothing
getArray (JArray a) = Just a
getArray _          = Nothing
isNull v = v == JNull
main = print (JObject [("foo", JNumber 1), ("bar", JBool False)])
然后在ghci中把add.hs加载进去就可以了:
adeMacBook-Pro:haskell_dev apple$ ghci
GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :load SimpleJSON.hs
[1 of 1] Compiling Main ( SimpleJSON.hs, interpreted )
Ok, modules loaded: Main.
*Main> getString (JString "hello")
Just "hello"
*Main> getString (JNumber 3)
Nothing
*Main> getString (JString "hello")
Just "hello"
*Main>
编译haskell
adeMacBook-Pro:haskell_dev apple$ ls
Assign.hs InteractWith.hi SimpleJSON.hs WC.o myDrop.hs
BookStore.hs InteractWith.hs WC add.hs quux.txt
HelloWorld.hs InteractWith.o WC.hi hello-in.txt upperCase.hs
InteractWith Maybe WC.hs hello-out.txt
adeMacBook-Pro:haskell_dev apple$ ghc SimpleJSON.hs
[1 of 1] Compiling Main ( SimpleJSON.hs, SimpleJSON.o )
Linking SimpleJSON ...
adeMacBook-Pro:haskell_dev apple$ ls
Assign.hs InteractWith.hs SimpleJSON.hs WC.o quux.txt
BookStore.hs InteractWith.o SimpleJSON.o add.hs upperCase.hs
HelloWorld.hs Maybe WC hello-in.txt
InteractWith SimpleJSON WC.hi hello-out.txt
InteractWith.hi SimpleJSON.hi WC.hs myDrop.hs
adeMacBook-Pro:haskell_dev apple$ ls
Assign.hs InteractWith.hs SimpleJSON.hs WC.o quux.txt
BookStore.hs InteractWith.o SimpleJSON.o add.hs upperCase.hs
HelloWorld.hs Maybe WC hello-in.txt
InteractWith SimpleJSON WC.hi hello-out.txt
InteractWith.hi SimpleJSON.hi WC.hs myDrop.hs
adeMacBook-Pro:haskell_dev apple$ ./SimpleJSON
JObject [("foo",JNumber 1.0),("bar",JBool False)]
使用runghc执行:
adeMacBook-Pro:haskell_dev apple$ runghc SimpleJSON.hs
JObject [("foo",JNumber 1.0),("bar",JBool False)]
Mac OS X 上的安装haskell开发环境的更多相关文章
- Mac OS X 上的安装Lisp开发环境
		到网站:https://common-lisp.net/project/lispbox/ 下载lispbox 解压下载下来的包,找到Emacs 测试: 我们也可以使用homebrew来安装lisp的解 ... 
- Mac OS X 上的安装Lua开发环境
		测试Lua环境是否已经安装: adeMacBook-Pro:perl_dev apple$ lua -bash: lua: command not found 如果没有的话就到lua官方去下载:(网址 ... 
- Sqlite在Windows、Linux 和 Mac OS X 上的安装过程
		一:在 Windows 上安装 SQLite 1,下载 请访问SQLite下载页面http://www.sqlite.org/download.html,从Windows 区下载预编译的二进制文件.需 ... 
- Swig在Mac OS X上的安装
		网上有很多类似文章介绍Swig怎么在Mac OS X上安装和配置,一般来说就是: 下载pcre,configure & make & make install 下载swig,confi ... 
- go语言系列--golang在windows上的安装和开发环境goland的配置
		在windows上安装golang软件 golang中国网址为:https://studygolang.com/dl 我的学习选择版本:1.12.5 golang 1.12.5版本更新的内容:gola ... 
- 【转】搭建Mac OS X下cocos2d-x的Android开发环境
		http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ... 
- 金玉良缘易配而木石前盟难得|M1 Mac os(Apple Silicon)天生一对Python3开发环境搭建(集成深度学习框架Tensorflow/Pytorch)
		原文转载自「刘悦的技术博客」https://v3u.cn/a_id_189 笔者投入M1的怀抱已经有一段时间了,俗话说得好,但闻新人笑,不见旧人哭,Intel mac早已被束之高阁,而M1 mac已经 ... 
- 如何在Mac OS系统下配置Java服务器开发环境
		1.http://www.oracle.com/technetwork/Java/javase/downloads/index-jsp-138363.html 安装JDK(可通过java -versi ... 
- Mac OS 10.8 中的 OpenCV 开发环境设置
		一.编译OpenCV 要在Mac OS上使用OpenCV,需要自己编译源代码.操作过程如下: 1)从http://www.cmake.org下载cmake 2.8安装包. 2)安装cmake 2.8. ... 
随机推荐
- dll劫持技术
			DLL劫持技术当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中. DLL劫持原理 ... 
- sql server 复制需要有实际的服务器名称才能连接到服务器(转载)
			今天在做sql server 2005 复制的时候,提示复制需要有实际的服务器名称才能连接到服务器……的消息,一开始不知道什么意思!后来在网上查了一下才知道,原来是以前我把机器改过名 字.用selec ... 
- SQL Server 2005导入Excel表问题
			EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项” 原因: SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ... 
- curl模拟post请求
			1,curl -d "userType=seller&userId=1034285" "www.baidu.com/getInfo.php" curl ... 
- mysql字符串截取
			mysql字符串截取 update zcat ) where lev1 is null; update zcat ) where lev2 is null; 函数: 1.从左开始截取字符串 left( ... 
- 你知道require是什么吗?
			引题 用过node的同学应该都知道require是用来加载模块的,那你是否存在如下的疑问呢? 1. require(path)是如何依据path找到对应module呢? 2. 为何在模块定义中,一定要 ... 
- sql拷贝表结构不拷贝表数据
- PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
			php_sapi_name() 是用来检测PHP运行环境的函数. 该函数返回一个描述PHP与WEB服务器接口的小写字符串. 例如:aolserver, apache,apache2filter, ap ... 
- PHP5 Session 使用详解(一)
			http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无 状态,指的是不会维护http请求数据,http请求是独立的,不持久的.而越来越复杂的WEB应用,需要保存一些用户 ... 
- Linux LVS Nginx HAProxy 优缺点
			说明:以下内容参考了抚琴煮酒的<构建高可用Linux服务器>第六章内容. 搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按 ... 
