文章目录
  1. 1. 表达式
  2. 2. 【哦】与【哦。】语法糖
  3. 3. 【表态】关键字
  4. 4. 【钦点】关键字
  5. 5. 【闷声】关键字
  6. 6. 【资辞吗】关键字
  7. 7. 【奉告】关键字
  8. 8. 调用函数
  9. 9. 函数的递归调用

哦语言是一门面向真正粉丝的编程语言。您可访问示例页面,使用哦语言谈笑风生。

表达式

以计算 1 + 2 的值为例:

(+ 1 2)
3

在上例中,12 作为数字类型相加。除数字外,表达式中还可以包括字符串:

(+ 1 s)
1s

表达式可以嵌套,执行时依次由内层向外求值:

(= 90 (- 2016 1926) )
true

= 外,还可以使用 >< 操作符。但需要注意字符串和数字相比时始终返回 false

(< 冬马 3)
false

【哦】与【哦。】语法糖

深度嵌套的表达式末尾往往有很多括号。【哦】可以在代码中任意位置替代一个 ),而高冷的【哦。】可以在代码尾部补全所有的 )

(+ 苟
( + 利
( + 国
( + 家
( + 生
( + 死
哦。
苟利国家生死已

【表态】关键字

要想执行多条语句,可通过【表态】关键字将多个表达式并列。【表态】将返回最后一个表达式的求值结果:

(表态
(+ 1 s)
确立了🙂市场经济
(+ 1 s)
把🙂理论列入🙂
(+ 1 s)
三个代表
(+ 1 s)
🙂一律不得经商
(+ 1 s)
九八年的抗洪
微小的工作)
微小的工作

【钦点】关键字

要定义变量,可通过【钦点】关键字实现。(钦点 A B) 将定义变量 A,并为其赋值 B:

(表态 (钦点 雪菜 碧池) (= 雪菜 碧池) 哦。
true

【闷声】关键字

【闷声】关键字可以原封不动地返回表达式中剩余的所有参数:

(闷声 发 大 财)
发,大,财

例如,直接【钦点】特首会执行赋值操作:

(表态 (钦点 董先生 特首) (= 特首 董先生) 哦。
true

但使用【闷声】后得到的是 (钦点 董先生 特首) 表达式,而非表达式的求值结果:

(表态 (闷声 钦点 董先生 特首) (= 特首 董先生) 哦。
false

【资辞吗】关键字

条件判断通过【资辞吗】实现。(资辞吗 test A B) 首先判断 test 表达式结果,结果为真时,执行 A,否则执行 B。下例中,由于【闷声】返回了非空的结果,因此【资辞吗】为真:

(资辞吗 (闷声 apply for professor) 几百个教授一致通过 不通过)
几百个教授一致通过

【奉告】关键字

可以通过【奉告】关键字声明函数。注意这只是函数声明而非函数调用,通过 (奉告 (a, b...) (exp)) 语法,返回的是一个输入参数 (a, b...),并输出 (exp) 表达式求值结果的函数。下例声明了一个接收 时间 变量,并返回 时间 + 1 的函数:

(奉告 (时间) (+ 1 时间 哦。
function (e){for(var u={},i=0;i<n[1].length;i++)u[n[1][i]]=t(e[i],r);return t(n[2],u)}

调用函数

【奉告】声明的函数可通过【钦点】定义到作用域中,而通过【表态】可在【钦点】定义函数之后,返回函数调用的结果。下例中,将上例的函数定名为 函数,然后将 999 作为参数传入,调用了该函数:

(表态
(钦点 续
(奉告 (时间)
(+ 1 时间)
哦哦
(续 999 哦。
1000

函数的递归调用

哦语言中的函数支持递归调用自身,每次递归调用,传入的变量都保存在函数的局部作用域中:

(表态
(钦点 一尺之棰日取其半
(奉告 (余日 棰长)
(资辞吗 (= 余日 0) 棰长 (一尺之棰日取其半 (- 余日 1) (/ 棰长 2)))
哦哦
(一尺之棰日取其半 3 1 哦。
0.125

以上就是哦语言的全部语法内容,希望对真正的粉丝有所帮助!

文章目录
  1. 1. 表达式
  2. 2. 【哦】与【哦。】语法糖
  3. 3. 【表态】关键字
  4. 4. 【钦点】关键字
  5. 5. 【闷声】关键字
  6. 6. 【资辞吗】关键字
  7. 7. 【奉告】关键字
  8. 8. 调用函数
  9. 9. 函数的递归调用