摘要: 去年10月份的时候,就有这个打算了。也是在上个月左右,抽空弄出来了个go语言实现的lisp。当然,不能和common lisp比,函数的数量是远远不如的,也不能自己定义类型/类,同时宏系统也非常简单。不过总的来说,也算是实现了基本的lisp了。代码托管在github,地址:https://github.com/hydra13142/lisp也算完成了个心愿吧。 阅读全文

posted @ 2013-10-07 14:47 snake117 阅读(432) 评论(1) 推荐(0) 编辑

2014年3月2日

摘要: 在我试图装入一个300mb的数据时,发生了溢出。我本以为不会出现这种问题的(内存和硬盘都够用),可见golang的bytes包还是设置了容量限制的。虽然通常来说300mb的[]byte不管什么情况基本都够用了。 阅读全文

posted @ 2014-03-02 23:11 snake117 阅读(837) 评论(0) 推荐(0) 编辑

2013年3月7日

摘要: 本人根据网络多个相关博客帖子原创1)生成dll建立两个文件 xxx.h , xxx.cppxxx.h内容如下:#ifdef BUILD_XXX_DLL#define EXPORT __declspec(dllexport)#else#define EXPORT __declspec(dllimport)#endifextern "C"{ EXPORT void example(void); ... ...}xxx.cpp内容如下:#define BUILD_XXX_DLL#include "xxx.h"void example(void){}... .. 阅读全文

posted @ 2013-03-07 11:49 snake117 阅读(448) 评论(0) 推荐(0) 编辑

2013年3月2日

摘要: 本人原创,首发于开源中国。大概和我不以程序员为职业有关吧,我本人是比较喜欢算法的那种,当然是比不了科班出身的。比如我就写过很多版本的算术表达式解析器,优先级堆栈的;二叉树的;分治策略的;修正计算顺序的……正则表达式两个我也写过两个,一个采用的回溯算法,另一个则是二叉树版本的,虽然这俩倒是都能用吧,但是对分组的处理(分组是采用递归调用的方法实现的,相当于另一个正则表达式)实在是不太好,这个缺点导致很多时候搜索的结果会遗漏很多,而二叉树版本的还有个缺点是选择操作“|”只能获得第一个匹配…………就效果看,这俩都是残次品。后来,我在vczh的博客里看到了他的一个科普贴子,在那里面,我才了解到还有有限自 阅读全文

posted @ 2013-03-02 18:36 snake117 阅读(1868) 评论(3) 推荐(0) 编辑

2012年11月10日

摘要: Fmt包import "fmt"简介▾Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。输出格式:一般:%v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names%#v 值的Go语法表示。%T 值的类型的Go语法表示。%% 百分号。布尔型:%t 值的true或false整型:%b 二进制表示%c 数值对应的Uni 阅读全文

posted @ 2012-11-10 21:55 snake117 阅读(281) 评论(0) 推荐(0) 编辑

2012年10月28日

摘要: 所以我也试试看吧,初步想法是:1)把一切数据、对象、函数都用同一种方法表示,所有的函数都是闭包,所有的数据都附加方法,也就是都当成类对象处理。2)语言格式尽可能的简化,lisp式就很好,但是都用括号就有点不友好了,用四种括号吧() [] {} <>反正我的想法就是(保证一定的功能的前提下)尽可能减少分析的难度吧……不过在这之前,我是不是该先看看编译原理之类的…… 阅读全文

posted @ 2012-10-28 19:47 snake117 阅读(171) 评论(0) 推荐(0) 编辑