We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
背景:
一开始并没有要设计DSL的想法,只是想在python里做如下尝试:
这个方案记为GDPL/draft1[简称Ld1],在尝试的过程中意识到python无法实现APL的左参数结合运算,于是废弃,遂有draft2,也就是在python里另外实现一套DSL[简称Ld2,或芦笛]。
构想Ld2的之初,并没有明确的目的,只是想先模拟古代的十进数制运算(十进制不等于十进位制)。后来觉得这样不够实用,于是参考SQL和正则表达式,有想兼容并包的考虑。但是编译SQL的工作远比替代正则要繁琐,故目前先只考虑正则部分的实现。
Ld2的很多概念都来自APL一族,比如stdlib一般叫标准库,而在Jsoftware里,叫词典。
Ld2目前主要用到的基本概念有:
目前设计的预设词义字很随意,背后没有什么很深的考虑,分为3组共42个:
第一部分:算术/术数
from draft2 import 求, 数 数(1)==数('一')==数-'一' 数(2)==求-'一加一' 3==数(3).曰==求-'再加一'-曰 4==求-曰-'三加一' 设=求.设; 设-'有数七到十二' 解=求-'平均数'-得 # [平均]一词属stdlib 9.5==解-曰
第二部分:正则
from draft2 import 求,解,得 解.设-'其为.+' r'\[\{.+\}\]' == 求-解-'[{其}]'-得 正=求; 正.则=正-解-得 r'\[\{.+\}\]' == 正.则-'[{.+}]'
问:如果业务相关的命名是白话 配上文言的关键词? 对:这个考虑到了,有个折中方案,就是[求]是基于单字的,而[有]和[设]是可以兼容当前的编程语言环境的。 对:设,类似于SQL里的DDL;求,类似SQL的DML;用[有]来声明非单字用词,比如苹果,自行车;比如[设苹果有三百,西瓜有二十,苹果和西瓜为水果]求[水果总数] 对:[定]是用来规范API/统一FFI引用/设置常量,这三个主要用途。比如设[定R为import request][设取为R.get,网址为xxx,求取网址]
The text was updated successfully, but these errors were encountered:
待续。有空接着补。二楼留着填充随手想到的例子。 [定R为redis,R有主为R.master,有从为R.slave或.replica]
数有九宫,可用作namespace下的变量集合。九宫[1-9]为后天自然序/从左往右从上到下,负[1-9]为先天自然序,从上往下从右往左;[一至九]为宫序。这个设定主要方便矩阵运算以及兼容三值逻辑/平衡三进制。 九宫可以嵌套,比如宫三三,记为左一格的下属左一格。
术有八门,同理。类似极坐标与直角坐标的关系。
Sorry, something went wrong.
进展:Ld2e。Ld2e是elixir下的简化版演示: 用elixir实现一个简单的中文语句解析》https://zhuanlan.zhihu.com/p/46030123
这个方案已经属于历史讨论的参考内容了,从Ld2,到Ld2e这个poc,再到CPN+PN2,最后是C8/P语言,基本上意味着主线剧情已经步入正轨
4b5ent1
No branches or pull requests
背景:
一开始并没有要设计DSL的想法,只是想在python里做如下尝试:
这个方案记为GDPL/draft1[简称Ld1],在尝试的过程中意识到python无法实现APL的左参数结合运算,于是废弃,遂有draft2,也就是在python里另外实现一套DSL[简称Ld2,或芦笛]。
Design of Ld2:用途
构想Ld2的之初,并没有明确的目的,只是想先模拟古代的十进数制运算(十进制不等于十进位制)。后来觉得这样不够实用,于是参考SQL和正则表达式,有想兼容并包的考虑。但是编译SQL的工作远比替代正则要繁琐,故目前先只考虑正则部分的实现。
Ld2:概念
Ld2的很多概念都来自APL一族,比如stdlib一般叫标准库,而在Jsoftware里,叫词典。
Ld2目前主要用到的基本概念有:
目前设计的预设词义字很随意,背后没有什么很深的考虑,分为3组共42个:
Ld2:test_d2.py
第一部分:算术/术数
第二部分:正则
Q/A
问:如果业务相关的命名是白话 配上文言的关键词?
对:这个考虑到了,有个折中方案,就是[求]是基于单字的,而[有]和[设]是可以兼容当前的编程语言环境的。
对:设,类似于SQL里的DDL;求,类似SQL的DML;用[有]来声明非单字用词,比如苹果,自行车;比如[设苹果有三百,西瓜有二十,苹果和西瓜为水果]求[水果总数]
对:[定]是用来规范API/统一FFI引用/设置常量,这三个主要用途。比如设[定R为import request][设取为R.get,网址为xxx,求取网址]
ref
next/RFC
The text was updated successfully, but these errors were encountered: