大白话

From Esolang
Jump to navigation Jump to search

大白话 is Chinese Human Words.

Commands

Table
大白话 Pseudo
以 [version] 版本启动程序。 BEGIN [version]
注释:【exegesis】 # exegesis
注释:【
multiline exegesis
####--- multiline exegesis ---####
引入 [lib] 库。 import [lib]
输出 [string] 。 print(string)
(以 [prompt] 作为提示)输入 [var] 。 input(__prompt="", *args)
定义空白变量 [name] 。 volatile name(void)
定义 [type] 变量 [name] 。 volatile name(type)

Note that type can be 整数, 小数, 字符, 字符串, 布尔值, 空白, 指针, 列表, 元组, 字典, 寄存器, and so on.

定义 [type] 变量 [name] ,然后将其初始化为 [value] 。 volatile name(type)=(value)
设置 [name] 为 [value] 。 name=value
True
False
虚空 None
A 等于 B A==B Return 真 if A equal to B.
A 不等于 B A!=B Return 假 if A equal to B.
A 大于 B A>B Return 真 if A greater than B.(If A and B are strings, the judgment starts with the first character that is not the same. If the ASCII code of A's different characters is larger than B's, then A is larger than B. Or vice versa. In particular, if A is longer than B, A is larger than B. Or vice versa, too.)
A 小于 B A<B I don't want to write nonsense anymore.
A 大于或等于 B A>=B
A 小于或等于 B A<=B
在 A 和 B 中取最大值 max(a, b)
在 A 和 B 中取最小值 min(a, b)
A 加 B a+b
A 减 B a-b
A 乘 B A*B
A 除以 B A/B
A 模数 B A%B
A 的 B 次幂 A**B
&&
或者 ||
如果 expr 则: if(expr){
否则,如果 expr 则: elif(expr){
否则: else{
对于 expr ,有: switch(expr){
若 expr 为 rtvalue ,则: case rtvalue{
若以上所有值都不是 expr 的返回值,则: default{
重复 x 遍: for i in range(0, x, 1):
重复执行直至 expr 不满足: while(expr){
定义函数 [name] 。它(不需要参数/需要这些参数:*args 、 **kwargs)。 func name(*args, **kwargs)
返回 x 。 return x
定义类 [name] 。 class name{
停止程序。

There are a lot of the command, here is just a part.

Example

Hello, world!

以 1.0 版本启动程序。
输出 "問天地好在。" 。
停止程序。

Count from one to ten

以 1.0 版本启动程序。
定义整数变量 索引 ,然后将其初始化为 1 。
重复执行直至 索引 小于或等于 10 不满足:
{
    输出索引的值。
    设置 索引 为 索引 加 1 。
}
停止程序。

Let's chant

以 2.0 版本启动程序。
切换至“文言”编程语言,然后执行位于两条分界线之间的程序。
=============================================================
吾有一言。曰「「繞口令  玲瓏塔」」。書之。
吾有一術。名之曰「數玲瓏塔」。
欲行是術。必先得一數。曰「層」。乃行是術曰。
    若「層」等於三者。
        吾有一言。曰「「玲瓏塔。塔玲瓏。接過了二層數 三 層。」」。書之。
    若非。若「層」等於一十三者。
    	吾有一言。曰「「玲瓏塔。塔玲瓏。到了尖兒的 一十三 層。」」。書之。
    若非。
		吾有三言。曰「「玲瓏塔。塔玲瓏。玲瓏寶塔第」」。曰「層」。曰「「層。」」。書之。
    云云。
    云云。
    乘「層」以四。名之曰「四倍之」。
    若「層」等於二者。
        吾有三言。曰「「兩 张高桌」」。曰「四倍之」。曰「「條腿。兩 個和尚 兩 本經。」」。書之。
        吾有一言。曰「「兩 副铙钹 兩 口磬。兩 個木了魚子 兩 盞燈。」」。書之。
        吾有四言。曰「「兩 個金玲整」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
    若非。
    	吾有八言。曰「層」。曰「「张高桌」」。曰「四倍之」。曰「「條腿。」」。
            曰「層」。曰「「個和尚」」。曰「層」。曰「「本經。」」。書之。
		吾有八言。曰「層」。曰「「副铙钹」」。曰「層」。曰「「口磬。」」。
            曰「層」。曰「「個木了魚子」」。曰「層」。曰「「盞燈。」」。書之。
    云云。
	若「四倍之」不大於九者。
    	吾有四言。曰「層」。曰「「個金玲整」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
    若非。
    	吾有四言。曰「層」。曰「「個金玲」」。曰「四倍之」。曰「「兩。風兒一刮響嘩楞。」」。書之乃得矣。
    云云。
是謂「數玲瓏塔」之術也。
有數一十三。名之曰「最高層」。
有數一。名之曰「層」。
恆為是。若「層」大於「最高層」者乃止也。
    施「數玲瓏塔」於「層」。
    加「層」以二。昔之「層」者。今其是矣云云。
吾有一言。曰「「玲瓏寶塔往回數。」」。書之。
減「層」以三。昔之「層」者。今其是矣。
恆為是。若「層」小於二者乃止也。
    施「數玲瓏塔」於「層」。
    減「層」以二。昔之「層」者。今其是矣云云。

=============================================================
停止程序。

Greatest Common Divisor

以 1.0 版本启动程序。
定义函数 最大公因数 。它需要这些参数:甲 -> 整数、乙 -> 整数。
{
    定义整型变量 余数 ,然后将其初始化为 (甲 模数 乙)。
    重复执行直至 余数 不等于 0 不满足:
    {
        设置 甲 为 乙。
        设置 乙 为 余数。
        设置 余数 为 (甲 模数 乙)。
    }
    返回 余数。
}

停止程序。
停你个嘚儿的停!定义整型变量 子。
定义整型变量 丑。
输入 子。
输入 丑。
输出 (最大公因数(子,丑))。
停止程序。

Complex Example

以 1.0 版本启动程序。
定义类 图形。
{
    定义方法 面积 。它将在后面实现。
}
定义类 圆圈。它的父类为 图形。
{
    定义整数属性 半径。
    设置 我的半径 为 半径。
    定义方法 面积 。它不需要参数。
    {
        引入 算经 库。
        注释:“算经”包含了所有数学运算。
        返回 算经.圆周率 乘 我的半径 的 2 次幂。
    }
}
定义类 矩形。它的父类为 图形。
{
    定义元组属性(长,宽)。
    设置 我的长 为 长。
    设置 我的宽 为 宽。
    定义方法 面积 。它不需要参数。
    {
        返回 我的长 乘 我的宽。
    }
}
定义圆圈对象 圆圈_1,然后将其初始化为(1)。
输出(圆圈_1的面积)的值。
定义矩形对象 矩形_1,然后将其初始化为(3,5)。
输出(矩形_1的面积)的值。
停止程序。

See also

  1. LOLCODE
  2. dongbei
  3. 中文
  4. Human Words

Categories