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

Posted pyzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elixir东游记:实现一个简单的中文语句解析相关的知识,希望对你有一定的参考价值。

备份: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 快速参考:html

以上是关于elixir东游记:实现一个简单的中文语句解析的主要内容,如果未能解决你的问题,请参考以下文章

Haxe东游记(上)part1.5:roadmap

Elixir 中的返回语句

Haxe:东游记(上)part1:intro

Elixir:根据索引从列表中选择多个元素

西游记倒着看。。我从贴吧看来的

将 XML 解析为 JSON Elixir