彼此彼此,我看了一眼,放弃了!😂
确实,写起来太复杂了,可读性也比较差,C++11 写法都比这个简单。

同感。
$defl! partition! (&lst i j pivot)
(
$unless (eqv? i j)
(
$while ($and (not? (=? i j)) (
定义,循环,判断....啥语法都离不开个"$"
这绝对是很有钱途的语言,含钱量绝对超过js,php,赞!!!

用上层语言呀,大多是底层函数的别名,基础语言主要用于编写新特性的库函数。Unilang没有关键字,变量名是非数字开头的可打印字符串,限制较少,底层一切皆函数,包括各种运算操作符。上层语言把基础语言的前辍式函数转换为中辍式操作符,更符合人们的习惯。比如:+ A B,改成 A+B
def data ();
data := list 2 3 13 11 5 1 14 6 16 8 10 9 15 7 12 4;
用上层语言呀,大多是底层函数的别名,基础语言主要用于编写新特性的库函数。Unilang没有关键字,变量名是非数字开头的可打印字符串,限制较少,底层一切皆函数,包括各种运算操作符。上层语言把基础语言的前辍式函数转换为中辍式操作符,更符合人们的习惯。比如:+ A B,改成 A+B
def data ();
data := list 2 3 13 11 5 1 14 6 16 8 10 9 15 7 12 4;
我解除的大部分语言都有关键字,不知道考虑啥要去掉关键字。
这是参考lisp编程语言的!你如果学过lisp语言,一看就明了,还是先等它完善好核心库再用吧!我奇怪的是这语言的拓展名居然是用 txt,乍一看,还以是文本文件!我觉得unilang这语言的扩展名可以命名为 unl
不在IDE,Ui编程框架上下功夫,这种脚本语言是个异数,现阶段注定不会有人学习使用它!莫废功夫了!
$defl! partition! (&lst i j pivot)
(
$unless (eqv? i j)
(
$while ($and (not? (=? i j)) (
定义,循环,判断....啥语法都离不开个"$"
这绝对是很有钱途的语言,含钱量绝对超过js,php,赞!!!

我还是喜欢c++多一些。。。。。。。。。
不在IDE,Ui编程框架上下功夫,这种脚本语言是个异数,现阶段注定不会有人学习使用它!莫废功夫了!
开发ide和开发一门语言完全两码事……
V23是基于Linux内核打造的根社区版本,必须要有区别于其他发行版的根技术才行,玲珑包、Unilang语言、DTK图形开发框架、IDE集成环境等,这些都实现了,才能名符其实。
我之前就评论过,我是perl恐惧症,一看到这么多 $ & ! 就使我想起了perl。
我之前就评论过,我是perl恐惧症,一看到这么多 $ & ! 就使我想起了perl。
最重要是dart、swift和ts等新进语言都不约而同用 “!” “?” 处理非空变量,用 “$” 处理字符串内变量。
特别是:“!” “?” 用来处理非空变量,几乎成了不成文的约定,这会造成很多程序员阅读的困难(不要说开发),就等于“+”不是加,“*”不是乘,这回造成多大的困难,unilang是后来者,你必须考虑习惯的问题。
最重要是dart、swift和ts等新进语言都不约而同用 “!” “?” 处理非空变量,用 “$” 处理字符串内变量。
特别是:“!” “?” 用来处理非空变量,几乎成了不成文的约定,这会造成很多程序员阅读的困难(不要说开发),就等于“+”不是加,“*”不是乘,这回造成多大的困难,unilang是后来者,你必须考虑习惯的问题。
还有我不明白函数体不用 “{” “}” 而是用 “(” “)”,这样阅读时函数体与表达式就不能清晰区分,这很明显架构师缺乏实战经验。
其实unilang作为新语言很多硬伤,一下子没时间说出自己的见解,比如:强调自己是动态语言,这个强调已显示架构师没有领会最新的语言开发思想,动态语言和静态语言是20年前的分类和设计思想,现在新进的开发语言已经没有动态语言和静态语言的区分,dart、ts、swift都同时支持动态语言和静态语言的特征,你习惯用动态语言就用动态语言的写法,你习惯用静态语言就用静态语言的写法,这些新进语言都不约而同想到一块,jit的vm用在开发测试,发布时编译成机器码直接执行,同时可以编译成js和WebAssembly(网络时代必须的),他们都一致想到一块,拥有类似python的动态灵活,C/C++的速度,以及无缝对接web开发。
dart也是参考很多lisp的,但dart的架构师知道,今天的软件工程代码行数规模已不是lisp发明那个年代的级别,需要注重工程的清晰(在lisp那个年代很多程序都是一个人完成的,现在几乎所有程序都是多人共同完成的,你需要阅读别人的代码,不要像perl那样自己写的代码自己都看不懂),工程的清晰包含两方面:1、语义的清晰,2、阅读的清晰,所以dart不会将自己弄成与lisp一样,所以dart在设计规范就说,会尽量避免多种含义模糊不清的陷阱,这对于现代动不动就几十万行代码的工程非常重要,比如:js三种等号的区别(=、==、===),还有perl的一种结果可以多种写法的宗教,都是反面教材。
拥有python的动态灵活,和C/C++的速度,以前的架构师的想法是打造一个超级jit runtime vm,让高级语言运行像低级语言一样快。java和.net是目前人类jit runtime vm的最高水平(不用怀疑,sun、ibm、微软、谷歌聘请了全球最顶级的专家、数学家和天才程序员,花了20几年打造),但java 和 .net的运行速度依然无法匹敌C/C++的速度,反而带来另外一个副作用,就是java 和 .net运行需要的内存是C/C++程序的10~300倍,平均统计都是50倍。
所以sun、ibm、微软、谷歌的专家、数学家和天才程序员在想,我为什么要一条路走到黑,代码一定要jit runtime vm执行呢?为什么不在保留可以通过jit runtime vm运行,同时可以编译成目标机器码执行,这样不是两全其美吗?所以这些公司才创建dart、ts、swift这些语言来适应新的行业需要,而不是为了新语言而创建新语言。
拥有python的动态灵活,和C/C++的速度,以前的架构师的想法是打造一个超级jit runtime vm,让高级语言运行像低级语言一样快。java和.net是目前人类jit runtime vm的最高水平(不用怀疑,sun、ibm、微软、谷歌聘请了全球最顶级的专家、数学家和天才程序员,花了20几年打造),但java 和 .net的运行速度依然无法匹敌C/C++的速度,反而带来另外一个副作用,就是java 和 .net运行需要的内存是C/C++程序的10~300倍,平均统计都是50倍。
所以sun、ibm、微软、谷歌的专家、数学家和天才程序员在想,我为什么要一条路走到黑,代码一定要jit runtime vm执行呢?为什么不在保留可以通过jit runtime vm运行,同时可以编译成目标机器码执行,这样不是两全其美吗?所以这些公司才创建dart、ts、swift这些语言来适应新的行业需要,而不是为了新语言而创建新语言。
所以我在想,unilang会不会还没出生就已输在起跑线了呢?
千万不要说哪个语言好,哪个语言不好,各有所长,也有各自的局限性。后出来的语言肯定要吸收前面语言的教训,Unilang的优势在于语言的可扩展性,同时引入了环境实体的概念。基础语言部分只提供基础的核心特性,扩展特性通过编写函数库来实现,用户甚至可以自己编写一套上层语言。Unilang的函数也比其他语言的函数概念更宽范,我认为表达式编程更易于学习和使用。
文档里面说了,待解释器稳定后,会出基于 LLVM 的多种后端的本机编译器,性能将会得到大幅度提升。
Unilang语言目前用于桌面应用的开发,将来会不会用于web和移动端的开发,不好说,拭目以待吧。
用上层语言呀,大多是底层函数的别名,基础语言主要用于编写新特性的库函数。Unilang没有关键字,变量名是非数字开头的可打印字符串,限制较少,底层一切皆函数,包括各种运算操作符。上层语言把基础语言的前辍式函数转换为中辍式操作符,更符合人们的习惯。比如:+ A B,改成 A+B
def data ();
data := list 2 3 13 11 5 1 14 6 16 8 10 9 15 7 12 4;
没有关键字的语言是个什么神仙
千万不要说哪个语言好,哪个语言不好,各有所长,也有各自的局限性。后出来的语言肯定要吸收前面语言的教训,Unilang的优势在于语言的可扩展性,同时引入了环境实体的概念。基础语言部分只提供基础的核心特性,扩展特性通过编写函数库来实现,用户甚至可以自己编写一套上层语言。Unilang的函数也比其他语言的函数概念更宽范,我认为表达式编程更易于学习和使用。
文档里面说了,待解释器稳定后,会出基于 LLVM 的多种后端的本机编译器,性能将会得到大幅度提升。
Unilang语言目前用于桌面应用的开发,将来会不会用于web和移动端的开发,不好说,拭目以待吧。
语言没有哪个好那个坏是对的,但,语言有用户数和流行度,热门的语言与冷门的语言在行业开发上区别太大了,一门开发语言如果不能进入流行度前20,基本上在企业开发领域可以宣布死刑,当然学院和研究室除外。
Popular Events
More

中文 
https://github.com/linuxdeepin/unilang/blob/master/demo/base-language/sort2.txt
unilang :
$def! data (list 2 3 13 11 5 1 14 6 16 8 10 9 15 7 12 4);
python :
data = [2, 3, 13, 11, 5, 1, 14, 6, 16, 8, 10, 9, 15, 7, 12, 4]