这个奇葩的语言,代码写完后连作者自己都看不懂了!
副问题[/!--empirenews.page--]
周末的Hello World咖啡馆依然热闹不凡,Java,Python,Lisp等一伙人坐在一路妙语横生。这时辰Java留意到门口来了一个面色阴郁的老头儿,在咖啡馆门口彷徨着,好像不肯意进来。 Java上去扣问, 老头儿说他叫Forth,被主人计划成了一幅离奇的边幅,此刻没有几多措施员乐意用了,失去了昔日丰盛的收入,只有漂浮陌头。 Lisp笑道:“你坐什么来的?” 老头儿说:“骑电动车。” “我们坐的都是疾驰、劳斯莱斯,你骑电动车!你骑电动车Hello World咖啡馆都不让你进来啊!” Java约请老头儿入座:“别听Lisp胡扯,你说说,你被计划成了什么离奇边幅?” Forth 说:“我被计划成了一个基于栈的编程说话,你看看,好比你要计较 3 + 4 . ,得这么来......” Forth说着从怀里掏出了几张漫画。 (第一步:把数字3入栈) (第二步:把数字4入栈) (第三步:从栈中取出4和3, 执行3+4, 把功效7 入栈) (第四步:从栈中取出数字7, 在屏幕上表现) (图片来历:https://www.forth.com/starting-forth/1-forth-stacks-dictionary/) Java 一看就乐了:“哈哈,漫画不错啊,这反面我Java是一样的吗?我也是基于栈的假造机啊。不信你看看码农翻身先容我的文章《我是一个Java Class》。” Python也乐了:“没错,我也是基于栈的假造机,咱们的事变方法是一样的。” Forth迷惑的问道:“是吗?莫非你们也是云云? 是不是尚有许多措施员在雇佣你们啊?我看你们乐呵呵的,穿戴鲜豁亮丽,开豪车,人为不低吧?” “一样平常一样平常,富饶谈不上,最多是个小康。既然咱们差不多,你怎么这么崎岖潦倒啊!” Java问道。 “唉,我还没有给你说我的编程语法呢, 好比你要计较(3+4)* 5 ,措施员得这么写:” 3 4 + 5 * Java和Python都大吃一惊:“莫非本日碰着传说中的后缀表达法了? 这种写法可就太让措施员瓦解了。” 只见Lisp撇撇嘴:“小样,这就瓦解了,比我的前缀表达式差远了 (* (+ 3 4) 5 ) ” Java不动声色:“那你怎样界说一个函数呢?好比这个计较平方的函数 ”
Forth说:“在我这里不叫函数,叫Word, 措施员必要这么界说。”
(注:冒号暗示开始界说,分号暗示竣事界说) Java看到了认识的DUP,说到:“你这里也有DUP啊,我的字节码指令也用到了,它是把栈顶的元素复制一份,再压入栈中, 可是你这里怎么没有参数啊?” “你这么快就忘了,我是一个基于栈的编程说话啊,参数会被放到栈中啊, 好比你想计较10的平方,必要这么挪用:10 SQUARE, 睁开后就相等于 10 DUP *” 10 先被压入栈中,DUP会把栈顶的元素复制一份,再压入栈中。这样栈中就有两个数字了,都是10 , 最后再挪用乘法。 看到Java略有惊奇,Forth说:“这还不算什么, 你看看我的IF语句。” : ?Negative 0 < IF ." less than 0" THEN ; 这是测试一个数字是不是小于0 -3 ?Negative 会输出 less than 0。 Java不由得说到:“我去,有点失常啊,我的脑筋中得时候想着有一个栈,全部的操纵都是基于这个栈的!” Forth有点惊奇:“你不是说你是基于栈的假造机吗?怎么?和我纷歧样吗?” “我们的假造机确实是基于栈的,可是我们的语法然则正常的语法啊 !措施员写的时辰,用的是最认识的中缀表达式。” ( 3 + 4 ) * 5 ; (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |