码迷,mamicode.com
首页 > 其他好文 > 详细

elixir东游记:实现一个简单的中文语句解析

时间:2018-10-05 19:46:12      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:nal   top   img   issue   pytho   chinese   判断   根据   eve   

备份:https://zhuanlan.zhihu.com/p/46030123

 

技术分享图片

 

代码地址:github:pyzh/gdpl-ex.poc-1

技术分享图片

 

原语句是:List1为‘12332234‘;记a为List1,b为2;求a中b的个数

 

整个流程是这样的:

首先断句,然后判断句属性(这个步骤其实代码里没有严格实现)

第一句里面因为只有一个[为]字,所以可以认为第一句是个赋值语句;

而第二句有一个[记]字,这个在[Ld2]的设定里面,要比[为]的优先级高,所以第二句实际上是[记+为]的定义语句;

第三句是[求]语句,根据前文进行计算(这里假定[求:个数]是标准库里的一员)

关于[为]和[记为]的差别,在设定里,[为]只能指定值,而[记为]既可以指向值,也可以指向参量(如a→List1)

第三句里的[中],决定了a和b的层级顺序。关于[的]字的处理,目前Ld2还没有明确规范。

 

缘起:APL和ABC里的count primitive

 技术分享图片

图2:流畅的python》python的直系祖先/ABC的count语法

 

参考:

  1. Ld2/初稿:一种基于中文的类SQL的DSL设计思路 · program-in-chinese/overview #89
  2. 纪念《APL》出版50年
  3. ABC 快速参考:

elixir东游记:实现一个简单的中文语句解析

标签:nal   top   img   issue   pytho   chinese   判断   根据   eve   

原文地址:https://www.cnblogs.com/pyzh/p/elixir-zh-calc.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!