dongbei 是一门以东北方言词汇为基本关键字的以人为本的编程语言。
这玩意儿可是填补了世界方言编程地图上的一大片儿空地啊! 这么说吧,谁要是看了 dongbei 程序能憋住了不笑,我敬他是纯爷们儿!
那它有啥特点咧?多了去了:
- 简单啊!小学文化程度就行。您能看懂春晚不?能?那就没问题。
- 好读啊!看着看着包您不由自主地念出声儿来。
- 开心啊!呃,做人嘛,最重要的是要开心。
- 开源啊!不但不要钱,而且不要脸 -- 随时随地欢迎东北话高手打脸指正。
总而言之,dongbei 语言具有极高的娱技比(娱乐精神-技术含量比例)。
dongbei 编程语言的开发采用了业界领先的 TDD(TreeNewBee-Driven Development) 方式。 具体地说,就是每个功能都是先把文案写好,八字没一撇牛皮就吹起来了,然后根据牛皮写测试案例,最后再实现功能让牛皮不被吹破。 这样做有两大好处:第一每个功能都是有的放矢,不值得 tree new bee 的功能一概没有。 第二确保了每个功能都有文案负责吹嘘,开发者绝对不会养在深闺无人识。
不扯犊子了。翠花,上酸菜~~~
快排示例
!/usr/bin/env dongbei
# -*- coding: utf-8 -*-
# 快速排序
【排得贼快】(村子)咋整:
寻思:村子有几个坑 跟 零 一样一样的?
要行咧就 滚犊子吧 村子。
杆子装村子的老大。
几个杆装零。
矮墩庄都是活雷锋。
高个庄都是活雷锋。
哥们儿 在 村子 磨叽:
寻思:哥们儿 跟 杆子 一样一样的?
要行咧就 几个杆走走。
要不行咧就寻思:哥们儿比杆子还小?
要行咧就 矮墩庄来了个哥们儿。
要不行咧就 高个庄来了个哥们儿。
磨叽完了。
顺溜庄都是活雷锋。
矮墩 在 整【排得贼快】(矮墩庄)磨叽:
顺溜庄来了个矮墩。
磨叽完了。
还行从一到几个杆磨叽:
顺溜庄来了个杆子。
磨叽完了。
高个 在 整【排得贼快】(高个庄)磨叽:
顺溜庄来了个高个。
磨叽完了。
滚犊子吧 顺溜庄。
整完了。
# 乱炖庄 = 「2, 3, 7, 6, 2, 8, 2, 1」
乱炖庄都是活雷锋。
乱炖庄来了群路银「二,三,七,六,二,八,二,一」。
唠唠:整 【排得贼快】(乱炖庄)。
# 运行结果:
# --------
# 「1, 2, 2, 2, 3, 6, 7, 8」
语言小抄
常数
唠唠:零。 # 0
唠唠:鸭蛋。 # 0
唠唠:一。 # 1
唠唠:二。 # 2
唠唠:俩。 # 2
唠唠:两。 # 2
唠唠:三。 # 3
唠唠:仨。 # 3
唠唠:四。 # 4
唠唠:十。 # 10
唠唠:没毛病。 # True
唠唠:有毛病。 # False
变量
老张是活雷锋。 # 定义变量。初始值:啥也不是。
老张装二。 # 老张 = 2
削老张。 # 老张 = 啥也不是
老王是活雷锋。
老王装老张。 # 老王 = 啥也不是
老王装仨。 # 老王 = 3
老张装老王。 # 引用变量。老张 = 3
炮决老王。 # 老王尸骨无存了。
唠唠:老王。 # 整叉劈了:不认识老王。
群众
张家庄 都是活雷锋。 # 张家庄是个群众变量。初始值是「」。
张家庄 装「二加三,“大”」。 # 张家庄现在 = 「5, '大'」
张家庄 装 路银「二加三,“大”」。 # 意思一样。张家庄现在 = 「5, '大'」
张家庄 来了个 三。 # 张家庄现在 = 「5, '大', 3」。
唠唠:张家庄 掐头。 # 「'大', 3」
唠唠:张家庄 去尾。 # 「5, '大'」
唠唠:张家庄 有几个坑。 # 3
唠唠:张家庄 的老大。 # 第一个人(5)。
唠唠:张家庄 的老(三减一)。 # 第二个人('大')。
唠唠:张家庄 的老幺。 # 最后一个人(3)。
李家村 都是活雷锋。 # 李家村也是个群众变量。初始值是「」。
李家村 来了个 三。 # 李家村现在 = 「3」。
李家村 来了个 张家庄。 # 群众的一个元素本身可以是群众。李家村现在 = 「3, 「5, '大', 3」」。
李家村 来了群 张家庄。 # 把张家庄的群众挨个加入李家村。李家村现在 = 「3, 「5, '大', 3」, 5, '大', 3」。
炮决 李家村 的老三。 # 李家村现在 = 「3, 「5, '大', 3」, '大', 3」。
唠唠:李家村 的老二 的老大。 # 5。
削 张家庄。 # 张家庄现在啥也不是。
抱团
唠唠:抱团。 # ()
唠唠:五抱团。 # (5,)
唠唠:五跟六抱团。 # (5, 6)
老王装五跟六跟七抱团。 # (5, 6, 7)
唠唠:老王的老大。 # 5
唠唠:老王的老二。 # 6
唠唠:老王的老幺。 # 7
唠唠:老王有几个坑。 # 3
运算
老张 走走。 # 老张 += 1
老张 走两步。 # 老张 += 2
老张 稍稍。 # 老张 -= 1
老张 稍三步。 # 老张 -= 3
老张 装 老王 加 二。 # 老张 = 老王 + 2
老张 装(老张 减 三)除以 五 乘 老王。 # 老张 = (老张 - 3)/5*老王
老张 装 老张 齐整整地除以 老王。 # 老张 = (老张 / 老王),只留整数部分
老张 装 老张 刨掉一堆堆 老王。 # 老张 = 老张除以老王的余数
老张 装 拉饥荒 老王。 # 老张 = - 老王
比较
老王比5还大
7加二比老刘还小
老张跟老王一样一样的
老李跟250不是一样一样的
老刘啥也不是
交流
唠唠:“唉呀妈呀”。 # 打印字符串常量。
唠唠:老王。 # 打印变量的值。
唠唠:老王比老张还大。 # 打印表达式的值。
唠唠:“老王是”、老王。 # 打印两个表达式的并置。
唠唠:最高指示。 # 打印当前命令行。
贵姓 装 整你吱声(“你贵姓?”)。 # 等待用户输入。
条件
寻思:老王比老张还大?
要行咧就唠唠:“老王!”。
要不行咧就唠唠:“老张!”。
循环
老王从1到10磨叽:
唠唠:老王。
磨叽完了!
老张在张家庄磨叽:
寻思:老张比二还大?
要行咧就开整:
唠唠:老张。
接着磨叽。 # continue
整完了。
要不行咧就尥蹶子! # break
磨叽完了。
组合
寻思:老王比老张还大?
要行咧就开整:
唠唠:“老王!”。
唠唠:“你好美!”。
整完了。
套路
【阶乘】(那啥)咋整: # 定义套路 阶乘,有一个参数 那啥。
寻思:那啥比一还小? # 需要自推吗?
要行咧就 滚犊子吧 一。 # 返回值1。
要不行咧就 滚犊子吧 那啥乘整【阶乘】(那啥减一)。 # 需要。返回自推结果。
整完了。 # 定义结束。
唠唠:整【阶乘】(五)! # 使用套路
阶级
# 定义 有名 class, 没有 parent class。
无产阶级的接班银 有名 阶级咋整:
新对象(名字)咋整: # 定义初始化 有名class 对象的方法。
俺的名字 装 名字。 # 将对象的名字属性设成参数的值。
整完了。
整完了。
# 创建一个有名class的新对象,参数为“林蛋大”。
老林 装 有名的新对象(“林蛋大”)。
唠唠:老林的名字。 # 林蛋大
# 定义 特有名 class,parent class 是 有名。
有名阶级的接班银 特有名 阶级咋整:
新对象咋整: # 定义初始化 有名class 对象的方法。没有参数。
# 调用 有名 阶级的初始化方法。
整 领导的新对象(“赵英俊”)。
# 特有名 阶级特有的操作。
俺的 年龄 装 25。
整完了。
公岁咋整:
滚犊子吧 俺的 年龄 除以 二。
整完了。
显呗咋整:
唠唠:“我你都不认识啊?我是那啥”、俺的名字、“!”。
整完了。
整完了。
老赵 装 特有名的新对象。
唠唠:老赵 整 公岁。 # 12.5
老赵 整 显呗。
评论