一个Hashell模块
来源:互联网 发布:c语言判断质数 编辑:程序博客网 时间:2024/06/15 10:12
1.暴露模块的接口
module ModuleName (XXX) where
XXX为暴露的内容
2.导入模块
import XXX
XXX为模块名
3.代码来之Real World Haskell
定义Json
SimpleJSON.hs
module SimpleJSON ( JValue(..) , getString , getInt , getDouble , getBool , getObject , getArray , isNull ) wheredata JValue = JString String | JNumber Double | JBool Bool | JNull | JObject [(String, JValue)] | JArray [JValue] deriving (Eq, Ord, Show)getString :: JValue -> Maybe StringgetString (JString s) = Just sgetString _ = NothinggetInt (JNumber n) = Just (truncate n)getInt _ = NothinggetDouble (JNumber n) = Just ngetDouble _ = NothinggetBool (JBool b) = Just bgetBool _ = NothinggetObject (JObject o) = Just ogetObject _ = NothinggetArray (JArray a) = Just agetArray _ = NothingisNull v = v == JNull
4.Demo8.hs
module PutJSON whereimport Data.List (intercalate)import SimpleJSONrenderJValue :: JValue -> StringrenderJValue (JString s) = show srenderJValue (JNumber n) = show nrenderJValue (JBool True) = "true"renderJValue (JBool False) = "false"renderJValue JNull = "null"renderJValue (JObject o) = "{" ++ pairs o ++ "}"where pairs [] = ""pairs ps = intercalate ", " (map renderPair ps)renderPair (k,v) = show k ++ ": " ++ renderJValue vrenderJValue (JArray a) = "[" ++ values a ++ "]"where values [] = ""values vs = intercalate ", " (map renderJValue vs)
5.Main.hs
module Main (main) whereimport SimpleJSONmain = print (JObject[("foo",JNumber 1),("bar", JBool False)])
0 0
- 一个Hashell模块
- 一个模块
- 如何汉化一个模块
- 求一个模块
- pdf 的一个模块~~
- 创建一个新功能模块
- 一个读写缓冲模块
- thinkphp新增一个模块
- ThinkPHP5新建一个模块
- 多个模块编成一个模块
- cvs中新增一个模块
- ASP 一个数据库类模块
- 一个堆栈模块的接口
- 一个队列模块的接口
- 一个模块如何处理异常
- 一个简单的Makefile 模块
- 编译一个linux内核模块
- android 封装一个view模块
- 第一个ios程序
- java基础知识--对super()的理解
- subversion的编译安装和配置(SVN)
- 最长公共子序列
- ——反射
- 一个Hashell模块
- ansys六个应力的物理意义
- 欢迎使用CSDN-markdown编辑器
- Xcode 真机调试 ineligible Devices的解决方法
- SSH Secure Shell显示服务器Tomcat后台内容
- 11gR203 inventory 被误删后的恢复
- von mises应力和stress intensity的区别
- C# WinForm开发系列 - ADO.NET
- 机器学习 之 各种距离