搞了个clojure-struct


链接在这里:

https://bitbucket.org/qingant/clojure-struct

一个类似Python标准库里面的struct的小玩意儿,用来做二进制pack/unpack, 目前大体完成了pack的部分。用起来基本是这样:

user=> (load-file "struct.clj")
#'struct/bpack
;; pack 0xff000000 大字节序 到四字节int 然后是gbk编码的字符串"好"  补
足32个字节
user=> (def ar (struct/bpack '(i > s g 32) 0xff000000 "好"))
#'user/ar
;; 结果:
user=> (seq ar)
(0 0 0 -128 -70 -61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0)
;;同上,不过是本地字节序
user=> (def ar (struct/bpack '(i  s g 32) 0xff000000 "好"))
#'user/ar
user=> (seq ar)
(-128 0 0 0 -70 -61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0)
;; 不对字符串进行补齐:
user=> (def ar (struct/bpack '(i  s g ) 0xff000000 "好"))
#'user/ar
user=> (seq ar)
(-128 0 0 0 -70 -61)
user=> 

做这个东东的主要目地是学习clojure.为啥学习clojure:
  1. 需要会一门jvm语言
  2. 会一点lisp,容易上手
  3. clojure有一些优秀特性,atom,agent之类,有严肃的并发支持

Author: MaTao <qingant@gmail.com>

Date: 2012-03-20 Tue

HTML generated by org-mode 6.33x in emacs 23

posted on 2012-08-07 18:52 qingant 阅读(2292) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

常用链接

留言簿(3)

随笔档案

相册

最新随笔

搜索

最新随笔

最新评论

阅读排行榜

评论排行榜