博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全新通用编程语言 Def 招募核心贡献者、文档作者、布道师 deflang.org
阅读量:6040 次
发布时间:2019-06-20

本文共 975 字,大约阅读时间需要 3 分钟。

先给出官网地址:

一句话简介:可扩展编程语言 Def 的目标是将 C++ 的高效抽象和 Lisp 的强大表现力融为一体。

你可以通过阅读 、 或 来简要或详细的了解Def到底是怎样的一门编程语言。

Def 有着雄心勃勃的计划:在不损失效率的情况下达到现代脚本语言的高度抽象,并尽可能的减少程序员的负担。目前已经实现的部分为:类、泛型、函数重载、函数嵌套、函数模板、操作符绑定、完全类型推导、基于宏的元编程等,接下来需要您帮助实现的部分是: 清晰友好的错误提示,lambda表达式等高级特征。

Def 的前缀 可扩展编程语言 指的是:你可以创造原本不存在的语义、自定义符号绑定的语法、甚至修改语言的内核。这一切意味着,你可以亲手将 Def打造成任何你想要的语言!

示例代码:

;; 添加操作符绑定let ( a + b ) ( add a b )let ( a := b ) ( var a b )let ( a.b ) ( elmget a b );; 自定义类型type Point (    Int x    Int y);; 定义变量并初始化p1 := Point 1 2   ; 类型初始化语法与函数调用相同p2 := Point 3 4;; 重载 add 函数,利用函数模板tpf add(a b)(  ; tpf 定义函数模板    Point (a.x)+(a.y) (b.x)+(b.y));; 重载的模板函数调用p1 + p2;; Def 多返回值函数fun getTuple()(    ret tuple (  ; 返回元组类型        10        9.9        'a'    ));; 得到元组并使用var tp getTuple  ; 是的,函数调用不需要括号var num elmget tp 0  ; num = tp[0] ;; 定义元组拆包宏let upk(names val)(  ;  upk 为 unpack 的缩写    mcrfor(names)( var _v elmget val _i )    ; mcrfor 表示宏参数循环  _v 为值  _i 为循环索引) ;; 使用拆包宏upk(a b c) tp

如果你对 Def 感兴趣,请上 提交新的代码,或者 作者的开发工作。

转载地址:http://cvghx.baihongyu.com/

你可能感兴趣的文章
VB.NET 生成DBF文件
查看>>
编译安装nginx 1.9.15
查看>>
新的开始~~~
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
dutacm.club Water Problem(矩阵快速幂)
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>