找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2287|回复: 20

[推荐]:Lisp For Windows!

[复制链接]
发表于 2008-6-12 17:48:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
算子语言简介

《算子》是一种基于符号和表达式演算的计算机编程语言。相比较于其它计算机语言,它简单易学,容易调试,兼容Autolisp语言。功能强大、超微型内核,拥有几百个实用函数。
算子语言突破了以往计算机编程汉字仅能作为数据来处理的局面,可将任何符号(包括中文汉字,少数民族语言文字)作为计算机代码来处理
算子语言集结了C语言和LISP语言的优秀特点,它既有C语言的访问底层数据单元和执行系统操作的性能,也有LISP语言独特的列表和表达式处理的特点。
算子语言和LISP语言一样,集中强化符号和表达式的处理和操作,包括修改,插入,删除复杂嵌套列表和多维数组结构中的元素
算子语言具有多态函数的特点,参与函数运算的参数类型不限和参数个数不限,这使得定义函数有很强的灵活性,比如列表,字符串,数组,矩阵等都是复合数据,可以在函数体内部来完成对类型的判别和运算,由此实现一个函数处理多种形态的数据。为开辟面向对象的处理打下基础。
算子函数是特殊的列表,可以象操作列表一样来对函数进行组合和拆分。除了在设计过程中定义函数外,在运行过程中也可以实施重构函数的参数和函数体。   
算子语言支持流的输入输出操作,可以包含控制字符的二进制数据访问。
算子语言和C语言一样可以定义结构,访问结构成员和进行指针操作。
算子语言具有内存垃圾自动收集的功能。当符号对象不再被引用时,它们所占用的内存空间自动被回收后再利用。
算子提供独立的符号命名空间,多人协作完成的大型软件项目,既可以引用他人的目标模块。又可以避免变量或函数重名的覆盖危险。
算子语言除了使用内建函数外,还可以通过导入其他的动态链接库(DLL)来进行功能扩展。比如调用windows操作系统的库函数来实现GUI界面
算子语言在编程的过程中可以即时解释来观察程序的执行过程,符合要求后可以进行目标链接,生成独立的可执行文件。
算子语言的内核模块非常紧凑,所需系统资源很小。因此比流行的其他语言加载执行更加快速。
算子语言是个易于学习和使用的平台,内建一套汉字命名的中文库函数。高级函数可运用于:计算机教学、人工智能、图形与图像、数据库、科学统计与分析、网络分布计算等。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2008-6-12 21:53:40 | 显示全部楼层
示例程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-13 22:33:55 | 显示全部楼层
不太明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-14 00:01:34 | 显示全部楼层
还能在具体一些吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-21 00:12:23 | 显示全部楼层
算子语言函数说明

    本节对算子语言中的函数逐个地进行详细说明,并给出示例语句来加深理解. 函数说明分为: 函数名称、功能、语法、使用方法、示例及语句注释. 由于算子语言中的大部分函数具有多态的特性, 可以代入多个可选参数, 还可根据操作目标来选用不同数据类型的参数, 所以一个函数会出现多条不同的使用语法.
    为帮助使用者从参数的字面读懂函数所带参数的数据类型, 文档中对函数的参数做了统一的命名规定. 规定说明如下:

[ xxx ]          一对[ ]中的 xxx 为可选参数, 调用函数时, 根据函数的使用效果来决定是否使用或省略.
[ xxx-2 ... ]    指多个可选参数, 数目个数不限.

bool-            布尔型, 空或真, nil或true
num-             数值类型, 可以是整数, 也可以是实数
int-             整数类型
float-           实数类型
str-             字符串类型
lst-             列表类型
sym-             符号类型
exp-             表达式类型, 为任意值的数据或一个函数调用

idx              序号
key              一对关联数据的键字
rad              弧度值
pid              子进程标识

function         函数
param            参数
default          缺省值
local            局部
var              变量
body             函数体中的语句
condition        条件
file             文件
path             路径
buffer           缓冲区, 变量指向一个内存块, 显示为字符串
size             字节长度
address          内存地址
from-address     源内存地址
to-address       目的内存地址

示例说明:

(+ 1 1)     =>   2

=> 的左侧部分为输入内容, 可以粘贴到算子IDE中的文档窗口. 右侧为求值后的结果. (按F6键, 调试窗口看到的输出内容)

<未完待续>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-21 09:23:08 | 显示全部楼层
不懂。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-21 14:52:42 | 显示全部楼层
+, -, *, / ,%

功能: 算术运算.

语法: (+ num-1 [num-2 ... ])
语法: (+ lst-1 [lst-2 ... ])
语法: (+ str-1 [str-2 ... ])

第一个语法, 返回 num-1 数值到 num-i 数值的和. 根据第一个参数的数据类型来决定返回值的数据类型. 如果 num-1 为整数, 结果值为整数; 如果 num-1 为实数, 结果值为浮点数.
第二个语法, 返回一个合并后的列表, 该列表由 lst-1 列表 ...到 lst-i 列表中的所有元素组成.
第三个语法, 返回一个合并后的字符串, 该字符串由 str-1 字符串 ...到 str-i 字符串中的所有字符组成.


语法: (- num-1 [num-2 ... ])

从 num-1 数值中减去 num-2, 然后将其结果再依次相减下一个参数直到 num-i 数值. 如果只带一个参数值, 它的符号取反.如果 num-1 为整数, 结果值为整数; 如果 num-1 为实数, 结果值为浮点数.


语法: (* num-1 [num-2 ... ])

返回 num-1 值到 num-i 值的乘积.如果 num-1 为整数, 结果值为整数; 如果 num-1 为实数, 结果值为浮点数.

语法: (/ num-1 [num-2 ... ])

从 num-1 数值中除以 num-2, 然后将其结果再依次除以下一个参数直到 num-i 数值.如果 num-1 为整数, 结果值为整除后的商(整数); 如果 num-1 为实数, 结果值为浮点数.除数为零将产生一个错误.

语法: (% num-1 [num-2 ... ])

从 num-1 数值中除以 num-2, 然后将其结果再依次除以下一个参数直到 num-i 数值, 返回余数. 如果 num-1 为整数, 结果值为整除后的余数(整数); 如果 num-1 为实数, 结果值为浮点数.除数为零将产生一个错误.

示例:

    (+ 1 2 3 4 5)           => 15
    (+ 1.2 3.9)             => 5.1

    (- 10 3 2 1)            => 4
    (- 123)                 => -123
    (mapcar - '(1 2 3))     => (-1 -2 -3)

    (* 1 2 3)               => 6
    (* 10 (- 8 2))          => 60

    (/ 12 3)                => 4
    (/ 2 5)                 => 0
    (/ 2.0 5)               => 0.4

    (% 10 3)                => 1
    (% -10 3)               => -1
   

+ 函数第二个语法, 对列表进行操作, 将 lst-1 到 lst-i 合并为一个新的列表. 原来的列表保持不变.
示例:

    (+ '(1 2 3) '(4 5 6) '(a b))      => (1 2 3 4 5 6 a b)
    (setq lst '("hello" "world"))     => ("hello" "world")
    (+ lst '("I am" "Suanzer"))       => ("hello" "world" "I am" "Suanzer")

+ 函数第三个语法, 对字符串进行操作. 将 str-1 到 str-i 合并为一个新的字符串返回.
示例:

    (setq hello "how are you")       => "how are you"
    (+ "I am" " Suanzer, " hello)    => "I am Suanzer, how are you"
    (apply + '("a" "b" "c" "d"))     => "abcd"

<待续>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-22 20:53:02 | 显示全部楼层
干脆楼主说lisp入门得了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2008-6-23 21:37:00 | 显示全部楼层
我看出来了,语法和lisp一样,但有很多函数,也就是语句不一样吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-25 14:48:30 | 显示全部楼层
C语言/算子语言/AutoLisp语言比较一览表

C      Suanz     AutoLisp      描述

○       ●        ●       变量符号无须事前声明 (弱类型)
                             
●       ●        ○       变量符号大小写敏感

○       ●        ○       变量符号动态作用域

○       ●        ○       变量符号有独立命名空间

●       ○        ○       运算符优先级

○       ●        ○       运算符重载

○       ●        ●       数据/代码, 形式相同   

●       ●        ○       函数定义, 参数个数可选

○       ●        ●       函数定义, 参数类型可选

○       ●        ●       高阶函数, 匿名函数

●       ●        ○       指针函数

○       ●        ○       代码重构

○       ●        ○       定义宏, 语法重构

○       ●        ○       内建函数重新定义

○       ●        ●       列表处理

○       ●        ○       嵌套列表操作

○       ●        ○       矩阵运算

●       ●        ○       读写内存数据

○       ●        ●       内存垃圾自动收集

●       ●        ○       二进制文件读写

●       ●        ○       可编译为独立运行的执行文件

○       ●        ●       脚本解释型透明调试

●       ●        ○       I/O 重定向

●       ●        ○       网络套节字编程

●       ●        ○       DLL 导入其他库函数 (windows API)

●       ●        ○       COM 接口调用其他库函数

○       ●        ○       共享函数库 (DLL导出)

○       ●        ○       共享函数库 (COM 接口)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-26 14:22:04 | 显示全部楼层
新的语言?
没有听说过,了解了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-26 14:52:20 | 显示全部楼层
更多资料到QQ群: 7326594 下载
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-2 15:11:53 | 显示全部楼层
支持一下!学习学习!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-10 06:42:40 | 显示全部楼层
我 很感兴趣,有专门的教程吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-22 00:15:55 | 显示全部楼层
牛人啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 14:57 , Processed in 0.330875 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表