为保障 Lysee 的健康发展,我于近期创建了 Lysee 的官方网站 http://www.lysee.net,从此 Lysee 算是有个正正经经的家了,欢迎感兴趣的朋友们访问。
引用
Lysee 是一种小巧、快速、可靠、跨平台的脚本编程语言。它既可以直接嵌入到 Pascal 和 C/C++ 程序中为宿主程序提供强大的脚本处理能力,也可以通过键盘和显示器与程序员进行互动,或者批量执行为其指定的任何 Lysee 程序文件。Lysee 同样适用于网站开发,其代码可以直接嵌入到 HTML 页面中,就象 ASP 和 PHP 所做的那样。如果您是刚刚接触到 Lysee 并想了解它是怎样工作的,请阅读 ...
- 06:55
- 浏览 (83)
- 评论 (18)
说明:此文内容纯属个人看法,无所谓对错,欢迎拍砖!
call/cc(call-with-current-continuation)是函数编程的顶级概念,虽然我们用到的场合不是太多,但重要性非比寻常。
call/cc的魔力在于迫使运行的程序通过时光隧道返回到从前的某个时刻。
从返回的方式看我们可以有多种理解,下面是最常见的两种:
1、逐步退回:一步就是一次函数调用。执行call/cc时,程序自动执行函数返回操作(RET),直到返回的位置与call/cc的要求一致。
2、直接跳转:程序的指令系统直接切换到call/cc的位置,被抛掉的运行节点和对象留给GC处理。
命令式语言(如C/C+ ...
- 16:12
- 浏览 (224)
- 评论 (0)
很高兴今天能发布这个声明:
经过不懈努力,Lysee于今晨8:30释出1.1.0.5511版本,新版本初步实现了语法定义,帮助Lysee又向前“挪了”一步!
首先向Scheme/Lisp、Haskell、Perl、Python还有其它语言表示一下尊敬:
syntax void thanks(%(you) AND %(he))
{
= "thanks!", you, "and", he;
}
thanks "scheme/lisp" AND "haskell, python, perl and others";
“syntax”是为Lysee新定义的关键字,用于向 ...
模式匹配是个老概念了,它并不是函数式编程的必须内容,但函数式语言通常都实现了模式匹配,而大部分的命令式语言都空缺了这一块儿,所以给大家留下的印象就是模式匹配只在函数式编程中出现。
下面是一个常规的Fib编码:
public int fib(int n)
{
if (n < 2) return 1;
return fib(n - 2) + fib(n - 1);
}
// 伪代码
public int fib(int n)
{
PUSH_VARB n
PUSH_INT 2
CALC <
JMPF 000 ...
Lysee 表达式中的运算符按优先级排列分为以下几种:
NEG : - | NOT : not | BNOT: ~ | FMT : @ | | | 单目 : 最高
MUL : * | DIV : / | IDIV: \ | MOD : % | | | 乘除模: 1
ADD : + | DEC : - | | | | | 加减 : 2
BXOR : ^ | BAND: & | BOR : ...
- 11:31
- 浏览 (184)
- 评论 (0)
Lysee 写标准输出有以下三种方式:
1、使用输出操作符“=”:
调用格式: = v1, v2, ..., vn;
// 代码
= "\"RTFSC!\"", "stands for", "\"Read The F**king Source Code!\"";
// 输出
"RTFSC!" stands for "Read The F**ing Source Code!"
“=”输出时自动在逗号分隔的变量间加入一个空格。
2、使用sys::print()函数:
函数原型:public void sys::print(string Str)
// ...
- 17:31
- 浏览 (184)
- 评论 (0)
Lysee 的标识符分以下两种:
1、常规标识符:
遵循C/C++/Java标准,整个标识符由字符['a'..'z', 'A..'Z', '0'..'9']和下划线'_'构成且第一个字符不能是数字。
示例:max
// 代码
public variant max(variant v1 v2)
{
return v1 > v2 ? v1 : v2;
}
= max(1, 2), eol;
= max("hello", "world"), eol;
// 结果
2
world
关键字和保留字属于常规标识符的范围。
示例:true fals ...
- 16:48
- 浏览 (177)
- 评论 (0)
Lysee核心代码中的日志提醒我2003年2月26日是Lysee的生日,而准备工作早在1999年就已经开始了。
2000年我转业后回到郑州,找到了一份专职软件开发的工作,为政府机关提供数据处理服务,我的面比较窄,基本用Delphi和C包打天下,数据库则使用MSSQL和FireBird。
2001年碰到了Mr.Chen并一直合作到现在。Chen比我大两三岁,擅长Python、MySQL、TCL/TK和HTTP,是一等一的高手。 Chen的爱好是不断杂耍各种能够工作的文本文件,并讲解里面用到的数据字典、反射、绑定和其他一些当时在我看来可有可无的概念。在多年的工作中,我积累了自己专有的类库,久经 ...
- 16:39
- 浏览 (192)
- 评论 (0)
原文链接:http://flyingapplet.spaces.live.com/blog/cns!F682AFBD82F7E261!375.entry
书呆子的报复[译]
[译注]本文译自Paul Graham的文章“Revenge of the Nerds”。由于译者对Lisp一窍不通,所以不保证完全理解原作者的观点,更不保证能够全面准确地表达其观点。如果你觉得上面这段话有点白痴,看原文吧。
书呆子的报复
2002年5月
“我们争取的是C++程序员。我们已经成功地把很多人从转向Lisp的半路上给拉过来了。”
- Guy Steele,Java规范作者之一
软件行业里一直有两股力 ...
生成器可以看作为程序提供连续输入的流,输入类型通常固定为一种(比如整型),当然也可以是任意多的不同类型,下面探讨几种生成器的实现方法,题目是生成1...N的整形值:
一、大家都会的:
// 代码
public int seed = 0;
public int generator()
{
++ seed;
return seed;
}
// 使用
10.times { = generator() + " " };
// 结果
1 2 3 4 5 6 7 8 9 10
二、基于类实现:
// 代码
public class Ge ...
- 浏览: 2667 次
- 性别:

- 来自: 郑州

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
lysee 官方网站开张营业 ...
我认为,托管资源目前来说,主要是内存。不是handle。所谓托管资源,也就是由g ...
-- by 梁利锋 -
lysee 官方网站开张营业 ...
猜的不错的话 GC 回收的托管资源,比如,链表、字典、内存流之类的,通常都是非托 ...
-- by libudi -
lysee 官方网站开张营业 ...
google 了一下 Notification 和 FreeNotificati ...
-- by 梁利锋 -
lysee 官方网站开张营业 ...
虽然写过几个小的delphi程序,不过没什么研究,也不清楚 Notificati ...
-- by 梁利锋 -
lysee 官方网站开张营业 ...
Anders 开发 C# 前在 Borland 开发 Delphi 并部分参与 ...
-- by libudi






评论排行榜