FANDOM


=Lambda语言 =

第一次语法规范'

Lambda'语,是一种以严谨和简洁为发展方向的辅助语。'

目前,其构词法及词根仍未定义,本文例句采用英语词汇作为语法演示使用。

一、记法约定'

1'、等价符号'

本文中,使用“=”来表示等价的概念。

“a=b”则,ab在任何情况下可以互相替换使用。

2'、形式函数'

本文中,由于词汇尚未完成,使用的词汇名称将全部被视为代号,具体词汇请参见词汇表(待构建)。

二、基本概念'

         1、段落'

                  称“{”及“}”括起的部分为一个段落。允许嵌套。

例如:{cut2 i0 apple0}

         2'、句子'

                  称以不是任何其他语法单位的参数的独立单位开头的一组词汇为一个句子。                

例如:

                  cut2 i0 apple0 eat2 i0 apple0

                  为两个句子:

                  cut2 i0 apple0

eat2 i0 apple0

3'、独立单位'

完整句子中,每个独立单位是使用空格分隔文字。

give3 he0 red1 `apple0 me0   有五个独立单位

基于词汇的函数性质,每个独立单位有且仅有三个部分:前项,中项,后项

其中,前项和后项都为数字,中项为字符。

例如,在’1give3‘中,前项为‘1’,中项为‘give’,后项为‘3’

本语言在独立单位方面,存在三个语法糖:

后项语法糖:后项若为零则可省略:‘apple0’=apple’

后项为零是一个语法糖:apple0=apple1 `obj               

前项语法糖:前项若无需指定时可以省略。

4'、语法单位'

本语言中,每个独立单位都是函数,其后项为其表示的函数所需参数个数。

而其指明的参数个数指的是其后跟随的语法单位的个数。

一个完整的句子,其语法单位的划分可以依如下划分过程递归地定义:

首先定义一个划分函数t

t具有以下划分规则:

规则一: an=(an)n’apple0’=’(apple0)0’

规则二:t[(a)0 b c…]=(a)0 t[b c…]

规则三:t[(a)n b0 c d…]=t[(a b)n-1 c d..]

规则四:t[(a)n bn c d…]=t[an t[bn c d …]]

其中a,b,c,d…分别匹配一个独立单位

a匹配任何独立单位。

(a)0匹配后项为零的独立单位,例如’apple0‘或‘apple’

(a)n匹配后项不为零的独立单位,例如,可匹配’run1’’cut2’’give3’,不能匹配’apple0’

(a)n可以匹配’(apple)0‘也可匹配’(give)3’’(give he)2’

另外,每次划分首先执行最内层(嵌套层数最深)的划分。

最终划分完毕后,在每一层括号中,每一个‘独立单位‘都是一个语法单位’。

例句:

give3 he red1 `apple me

t[give3 he red1 `apple me]

=t[give3 he0 red1 `apple0 me0]      (后项语法糖)

=t[(give3)3 he0 red1 `apple0 me0]          (规则一)

=t[(give3 he0)2 red1 `apple0 me0]   (规则三)

=t[(give3 he0)2 t[red1 `apple0 me0]]        (规则四)

=t[(give3 he0)2 t[(red1)1 `apple0 me0]]   (规则一)

=t[(give3 he0)2 t[(red1 `apple0)0 me0]]   (规则三)

=t[(give3 he0)2 (red1 `apple0)0 t[me0]]   (规则二)

=t[(give3 he0)2 (red1 `apple0)0 t[(me0)0]]       (规则一)

=t[(give3 he0)2 (red1 `apple0)0 (me0)0]  (规则二)

=t[(give3 he0 (red1 `apple0)0)1 (me0)0]  (规则三)

=t[(give3 he0 (red1 `apple0)0 (me0)0)0]  (规则三)

=(give3 he0 (red1 `apple0)0 (me0)0)0               (规则二)

=(give3 he (red1 `apple0) me)                    (后项语法糖)

至此,划分完毕。

可得:

’give3’所需的三个参数(语法单位)为:‘he0 me0 (red apple0)

‘red1’所需的一个参数(语法单位)为’apple0’

整句译为:“他给我一个红苹果”

本质上而言,语法单位的划分和使用独立单位后项仅是为了避免大量使用括号的语法糖。

另一种可能的类似的语法糖使用缩进,则上述句子可表示如下:

give he

                     red `apple

                     me

三、语法'

A.'词语类型:'

在本语言中,任何词汇都是函数,因此,后文未特别说明,函数指代词汇(语)

例如:

apple 在其他语言中为名词,在本语言中记为为 apple0’,其含义为一个接受零个参数,返回一个 ‘苹果类对象’ 的函数。

run‘ 在其他语言中为动词,在本语言中应记为‘run1’ 其含义为一个接受一个参数的函数,在这里,该参数为一个“指示动作发出者”的语法单位。使用起来形如“run1 person0”,译为“有一个人跑步”。

cut’ 在其他语言中为动词,在本语言中应记为‘cut2’ 其含义为一个接受两个参数的函数,在这里,两个参数分别为“动作发出者动作接受者。使用起来形如“cut2 person0 apple0”,译为有一个人 苹果

B.'函数返回值'

如未特别说明,一般函数的返回值都是一个其他语言中的所谓主系表结构:

例如:

eat2 i0 apple0

返回:

一次“吃动作的发起者是i0并且其动作接收者是apple0

C.'环境和指代'

本语言中,认为形如我吃他的苹果我吃苹果在“那苹果是他的“的环境中表现出的意思。

某独立单位x的环境e,用语法词”env2 x e”表示,返回附加了环境的x

本语言中,去除了冠词,引入了更加自由的指代方式。

仍然考虑我吃他的苹果

若表现为:

env2 eat2 i0 apple0 blg2 apple0 he0                (错误示例)

注:blg2 x y 表示 x 的所有权属于 y

则会出现谬误:

因为这里在

eat2 i0 apple0

blg2 apple0 he0

中各产生了一个苹果类对象,我们不能指明他们是同一个苹果,于是环境声明变得没有意义了。

英语中,这通过a the 的泛、特指特性得以避免。

本语言中,使用了即时构造并声明常数函数的方法达到指代的目的。

通过语法词”cns2 name value”可以即时构造并声明一个名字为name的,零参数的,返回value的常数函数,同时,cns的返回值为value

则上述句子的正确表达为:

env2 eat2 i0 cns2 “1apple” apple0 blg2 1apple he0

注意在左边 1apple 声明时要带上双引号,因为其是一个字符串而不是一个函数。

因为其使用之频繁,有一个语法糖可以帮助写出更简洁的表达:

cns2 “1x” x=1x

该指代方式表现在独立单位的前项上。

数字的选取在不冲突的前提下是任意的。

cns的声明的有效范围是同一段落。

冲突指在同一段落中有两或多次相同名字的cns声明。

则例句改写为:

env2 eat2 i0 1apple0 blg2 1apple he0

选取其他数字亦可(如15):

env2 eat2 i0 15apple0 blg2 15apple he0

另外,鉴于env2 在作为其他语言的的所谓定语(或状语)使用的频繁程度,有如下语法糖:

env2 x (an x …)=an `x …

则例句可改写为:

eat2 i0 blg2 `apple he0

这应是本语言的一般表达。

D'.被动'

         本语言中没有其他语言中的被动概念,使用一个特殊词汇’obj’代替

         本语言中’obj’是唯一一个非函数对象,其泛指一切东西,包括本语言内的语法现象。

         在表达其他语言的被动,如“他被杀了

         表达为:

         kill2 obj he

         其本质是不指明动作执行者,达到被动句的效果。

E.'按其他语言所谓词性划分的词语性质:'

1、名词

其他语言作为名词的成分,通常在本语言表现为一个零参数函数。如“apple0”

         2、形容词或副词

其他语言作为形容词的成分,通常在本语言表现为一个一参数函数,如”red1”

         3、动词

                  本语言,不及物与及物动词没有语言层面上的区别。

其他语言作为不及物动词的成分,通常在本语言表现为一个二参数函数,如“rise2”

                  其他语言作为及物动词的成分,通常在本语言表现为一个二参数函数,如“cut2”

其他语言作为需要追加宾语补足语的动词成分,通常在本语言表现为一个三(或多)参数函数,如”give3“

6、数词

本语言无数词,涉及到数字的,统一采用标准数学表达。

在表示数量时,使用“ 数字’ ”记法,如 3’ apple ,译为“三个苹果”。

原则上,任何独立语法单位前都应加上数量,但出于使用方便,作为语法糖,数量为1的可以省略。

7、序数词

本语言的序数词采用“ th1 数字函数,例如,第一为“ th1 1 ”,第二为” th1 2”

        

F'.其他语言中的语法成分(本语言的一般词汇)'

         1、时态

本语言没有与其他语言相对应的,语言层面的时态变化。

                  充当时态表示工作的,是以下几个函数:

                  pst1 x      now1 x  fut1 x                分别表示x发生于过去、现在、将来

                  例如,now1 cut2 i0 apple0  译为“我切苹果”

                  fin1 x        ing1 x               分别表示x已完成、正在进行

                  例如,ing1 now1 cut2 i0 apple0  译为“我正在切苹果

2、中文的“的

本语言没有所有格概念,但将中文的拆分为三个函数:

blg2 x y   法律上的归属权 x归属于y

blg2 desk he   桌子是他的

css2 x y  组成部分 组成yx

css2 `heart i    我的心脏

val2 x y      外在指标         y的外在指标x

val2 `car speed         车的速度

同时鉴于常用性,保留了所有格代词,但仅是语法糖:

形如:代词s

例如 hes1 x=blg2 he `x

         3、情态动词

                  本语言没有情态动词,以一般函数替代:

                  如:

                  的意思用函数‘able2’表示

                  (英文)he can run        可以译为

                  able2 he run

         4、代词

                  本语言人称代词有:

                  i0,you0,he0,she0,it0                 我、你、他、她、它

                  群体代词直接在单数人称代词后加’l’

                  il0,youl0,hel0,shel0 ,theyl0,itl0                 我们、你们、他们、她们、他们(性别不限)、它们

         5、连词

                  本语言连词包括但不限于:

                  and2,or2,however2,but2

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。

查看其他FANDOM

随机维基