Nero 发表于 2010-3-30 21:06:39

『再次用手机发帖』一些条件分支结构的初步实现方法

手机发帖打字辛苦,废话不多说,看示例程序段……

if a <= 5 then
a = a + 1
else
a = a+ b
end if


转化为es语言,为
(A+.5B+.5B*ispositive (A-5)+.5-.5*ispositive (A-5)) --> A

若设M=ispositive (A-5),可节省大量空间,但要用一个储存器,并且要多按等号。好处是可以传递到下一句(es语言只能逐条判断逐条执行,所以条件分支结构要用大量空间)。


其他语句可以依照这个思路来构造。这就是我的研究成果。另外编译器的事就不要太指望我了,我觉得我的水平最多只能写个代码对照表……我要开发一语言容易,写编译器难啊!……

zasdfgbnm 发表于 2010-3-31 11:29:36

我以前一直是把if(condition)-else语句处理为if(condition):if(not condition),你只用一条语句确实能少按等号。
若设M=ispositive (A-5),可节省大量空间,但要用一个储存器,并且要多按等号。好处是可以传递到下一句(es语言只能逐条判断逐条执行,所以条件分支结构要用大量空间)。

这个方法很好

Nero 发表于 2010-4-1 21:01:15

我认为卡西欧ES的特点是任何语句均为表达式,建议改研究if为研究函数iif
shyc2001 发表于 2010-4-1 14:00 http://www.cncalc.org/images/common/back.gif
切不可把编程语言“函数化”,否则就失去了易懂的最大优势。

zasdfgbnm 发表于 2010-4-2 08:02:41


否则就失去了易懂的最大优势。
991es82es 发表于 2010-4-1 21:01 http://www.cncalc.org/images/common/back.gif
ES语言最缺乏的就是这个

zasdfgbnm 发表于 2010-4-2 08:31:59

贴出通用形式:
if(condition) then
    a = b;
else
    a = c;
endif
计算器语言:
a + (b - a)*condition+(c - a)(!condition)→ a
其中!condition为condition的“非”,见http://www.cncalc.org/viewthread.php?tid=1625&page=1&fromuid=28#pid41868
页: [1]
查看完整版本: 『再次用手机发帖』一些条件分支结构的初步实现方法