点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送达

来自:机器之心

粤语编程语言——The Cantonese Programming Language。看来大家都是 C 语言啊。

最近十分搞笑的饮茶梗,刷新了大家对粤语的认知。

其实粤语一直都是一个隐含着幽默感的方言,想想「旺角卡门」中的乌蝇哥,是不是脑海中已经回荡起了学友哥的四字语音?而且毋庸置疑,粤语还是需要保护的文化遗产。

那么,今天我们就给大家介绍一个有趣的粤语编程语言 GitHub 项目,其开发者 Stepfen Shawn 似乎(自称)是来自广州的十六岁高中生。目前,该项目的 star 量已经达到了 600+。虽然工作中不会用粤语写代码,但是空闲时玩一下粤语编程,难道不是件乐事吗?

项目地址:https://github.com/StepfenShawn/Cantonese

粤语编程启蒙

下面列举了粤语版「Hello World」以及一些基本的功能(循环、函数等),还涵盖了面向对象编程和堆栈使用的示例。当然,还有各种有趣的编程语法细节,比如用「搞掂」来结束函数,用「使下」来调用库。

项目作者在《5 分钟学会粤语编程》教程中解释说,这里的「畀 (bei)」在粤语中是「给」的意思,「睇」是「看」的意思,所以整条语句的意思是「让我看看」的意思,而后面的「点样先?」则表示委婉的语气,意为「怎么样?」。对于这种有意思的互动,作者解释说,「需要用委婉语气来给计算机留下第一个好的印象,否则计算机可能会离家出走呢,对吧?」

而赋值语句「讲嘢 |A| 系 1」的「讲嘢」是「说话」的意思,「係」就是「是」的意思。作者表示,编程时写「系」也是能运行的。同样的,「唔係」就是「不是」的意思,「定係」就是「还是」的意思。

「落操场玩跑步...... 玩到 | 结束 | 为止」这个语句相当于一个 loop,「结束」就是 loop 的条件。

而类似 break 的用法有三种:「收工」、「辛苦晒啦」、「同我躝」。前两个很好理解,而第三个中的「躝」是「滚」的意思,所以使用哪个完全取决于你的心情。

「嘅」的意思是「的」,有没有感觉瞬间能读懂了。

「要做咩」直观地告诉计算机该函数接下来要做什么,「搞掂」是「搞定」的意思,起到 end 的作用。

「掟个...... 来睇下」的作用是抛出一个异常,其中「掟」有仍或丢的意思。而「谂」的意思是「想」,让计算机作判断。

「执嘢...... 揾到...... 执手尾」对应着 try、except、finally。「执嘢」是收拾房间的意思,「揾到」是指收拾中找到破烂了,至于「执手尾」,就是选择丢不丢这个破烂了。

讲真,这个「使下」,比 import 更形象。

没想到吧,居然还能进行面向对象编程。「佢」的意思是「它」,代指一个对象;「佢嘅」意思是「它的」,能够用来构造属性;「佢识得」意思是「它会」,用来构造类的方法;「老豆」就是「爹」的意思,用于描述继承关系。最后用「明白未啊」做结束语问计算机你明白了吗,会让计算机倍感亲切,接受介绍给它的对象。

这里的「Deo 哥」很明显是个栈,「顶你」就是放入栈,「丢你」就是从栈取出。

粤语编程进阶

下面列举了一些粤语编程的进阶玩法,比如二分查找、线性查找、冒泡排序、插入排序、KNN 等算法的实现。能看到这里,说明你很感兴趣啊,那就继续学吧。

对你没有看错,由于此语言由 Python 开发,还可以非常方便地编写机器学习算法。

此处为作者的灵魂画作(号称是海龟)。

上图是使用此语言开发的迷宫小游戏界面。

代码链接:https://github.com/StepfenShawn/Cantonese/blob/main/examples/games/game.cantonese

下面是作者实现的网页和 App 示例:

加入语言的方式

粤语编程语言运行在 Python 虚拟机上,支持 Python 3,使用方式如下:

还可以转化为 Python 运行:

以及生成 HTML:

欢迎关注我们,看通俗干货

文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目,GitHub star量600+...相关推荐

  1. 16 岁高中生开发「粤语编程」项目,在 GitHub 火了!

    点击上方"Github中文社区",关注 触达Github项目 来自:github中文社区 大家好!我是Huber! 好听的粤语都能编程了! 最近十分搞笑的饮茶梗,刷新了大家对粤语的 ...

  2. 哈哈哈哈,16 岁高中生开发「粤语编程」项目,在 GitHub 火了!

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Everyone wants to escape sometime ...

  3. 火了!16 岁高中生开发「粤语编程」项目

    来自:机器之心粤语编程语言 --The Cantonese Programming Language.看来大家都是 C 语言啊. 最近十分搞笑的饮茶梗,刷新了大家对粤语的认知.其实粤语一直都是一个隐含 ...

  4. 文言文不好玩,16岁高中生开发粤语编程项目

    本文转载自程序员极客实验室 粤语编程语言--The Cantonese Programming Language.看来大家都是 C 语言啊. 最近十分搞笑的饮茶梗,刷新了大家对粤语的认知. 其实粤语一 ...

  5. 苹果手机改linux,16 岁高中生把 iPhone7 改造成 Linux 服务器

    近日,国外一名 16 岁的开发者发布了一则视频,展示自己为一台已经无法正常使用的 iPhone 7 成功移植了 Ubuntu 20.04,并将其作为服务器来使用. 发布视频的开发者网名为 Daniel ...

  6. 西工大java高级网络编程_奥鹏西工大16春《JAVA高级网络编程》平时作业

    西工大16春<JV高级网络编程>平时作业 一.单选题(共 25 道试题,共 100 分.) 1. 假设以tomt为w服务器,在hllopp应用中有一个hllo.jsp,它的文件路径如下: ...

  7. 16岁初中生开发的软件,强大到令人发指!

    今天介绍的这款APP是一位16岁的初中生开发出来的,江山代有人才出呀!软件的霸气宣传语:你给我1M,我给你整个世界! 一个木函(全能工具箱) 一个木函提供了日常.查询.文字.图片.换算.编程.文件等相 ...

  8. 关于 Python3.9,看这张 16 岁高中生做的「新特性必知图」就够了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9,「千呼万唤始出来」. 先来速看下此次发布版本的重点. 新语法特性: PEP 584,为 dict 增加合并运算符. PE ...

  9. 13000行代码、19大技术,这位16岁高中生用C++从头到尾构建了一个机器学习库!...

    作者 | 苏宓 出品 | CSDN(ID:CSDNnews) 你是从什么时候开始编程的? 据 CSDN 调研数万名开发者的数据显示,近六成的开发者表示自己写下第一行代码的年龄是在 16-20 岁间.其 ...

最新文章

  1. C++ 笔记(18)— 类和对象(this 指针、指向类的指针、类静态成员变量和函数)
  2. RHCS集群理论暨 最佳实践
  3. 宏定义中有浮点数_GEO是什么?还可以定义新的数据类型吗?
  4. linux数据库监听配了两个,Oracle数据库和监听随LINUX系统启动
  5. Office 2010导致 VS2008 页面设计器无响应
  6. python将图片作为变量_遍历图像列表并在python中将其作为变量分配
  7. 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1-2-3-3-4-4-5 处理后为 1-2-5(非常简单明了)
  8. 第2章企业管理中的经济学原理
  9. 实事 | 神州十三号升空,点燃了谁的光与梦?
  10. Android hook微信 apk 实时获取微信聊天消息记录
  11. mysql优化 个人笔记 (mysql 主从复制 ) 非礼勿扰 -m11
  12. python-docx 设置Table 边框样式、单元格边框样式
  13. mysql 1146错误
  14. 模块regsvr32 c:\Windows\SysWOW64\comdlg32.ocx 加载失败
  15. k8s之kafka集群重启耗时太长问题
  16. 微信小程序php开发实例,微信小程序教程之demo:猫眼电影实例
  17. php随机调用百度背景图片,如何在网页中调用岁月小筑随机图片API——背景图片...
  18. i春秋 XSS闯关 wp
  19. 部署在云平台和IDC机房的系统也要过等保吗?
  20. 破解WMp11的install

热门文章

  1. [Zjoi2015]诸神眷顾的幻想乡
  2. 轻松入门React和Webpack
  3. What is a lambda expression in C++11?
  4. windows 域的一些概念
  5. 用python解“逆序三位数”问题
  6. 饭后半小时养胃黄金期
  7. springEL表达式
  8. pandas数据转换时遇到不能转换的数据转为NaN的参数设置errors='coerce'
  9. 高昆仑大数定律 中心极限定理
  10. sqlyog连接服务出现的2003和1130错误问题