\[\textit{Litar!}
\newcommand{\wd}[2]{\texttt{#1}^{#2}}
\]

让神明白

  文字产生于史前的祭祀,史前的人们改造了原始的语言规则,使得句子拥有“唯一语义性”(至少保证语法树可被唯一生成),以清晰(而不那么像人话)地传递对神的祈求。后来人们逐渐适应了改造语言,产生了系统的 Wfurent 语。

词性

  词语 \(W\) 具有唯一的词性标志——对象数 \(k\in\mathbb Z_{\ge 0}\),记为 \(W^k\)。(儿童读物上会标注哦~)硬要和英文语法对应的话,\(k=0\) 的词可以认为是 n/pron,\(k=1\) 的词可能是 adj/adv,\(k\ge1\) 的词可能是 v/prep 等。不考虑口语词。

基本语法

  • \(S=/W^0/\) 是句子。为了体现语法分析中的同一性,我们把这样的 \(S\) 和 \(W^0\) 都叫做对象。对象是内部完成匹配、整体可作为一个 \(W^0\) 参与成句的语块。
  • \(S=/S_1\ S_2\ \cdots\ S_k\ W^k/\) 是句子,其中 \(S_{1..k}\) 是对象,\(W^k\) 的解释规则由其词义决定,\(k>0\)。我们把这样的 \(W^k\) 称为操作词。操作词是内部未完成匹配、整体可作为一个 \(W^{k'}\) 参与成句的语块。
  • 所有句子能且仅能通过上述规则产生。语法正确的语段由且仅由多个句子并列而成。

  例如,英语 "I buy you a gift",我们规定 \(/S_1\ S_2\ S_3\ \wd{buy}3/\) 解释为“\(S_1\) 给 \(S_2\) 买了 \(S_3\)”,那么上句改写成 Wfurent 语法形式就是 \(/\wd{I}0~\wd{you}0~\wd{gift}0~\wd{buy}3/\)(没有冠词),这也是一个对象。同时,其中的 \(/\wd{gift}0~\wd{buy}3/\) 就可以视为一个操作词 \(W^2\)。

特殊词语

  【占位对象】如果只想表达“我买了一件礼物”,又没有相应语义的动词怎么办?Wfurent 语提供了一系列占位对象。例如 \(\wd{de}0\),无实意,占据操作词的一个对象匹配位置。于是“我买了一件礼物”:\(/\wd{I}0~\wd{de}0~\wd{gift}0~\wd{buy}3/\)。为了避免 \(\wd{de}0\) 连用影响观感,Wfurent 语还有一些小小的“语法糖”,例如复占位对象 \(\wd{dew}-=(\wd{de}0~\wd{de}0)\),虽然等号左右的词语就是完全等价的,但是我们建议 \(\wd{dew}-\) 展开出的两个占位对象被同一个操作词匹配。另外,还有全占位对象 \(\wd{det}-\),它满足 \(/\wd{det}-~W^k/=/\underbrace{\wd{de}0}_{k~\text{times}}~W^k/\),用于对象化一个操作词(通常表示动作,所以可以理解为名化动词)。它可以简写 \((\wd{det}-~W^k)='W^k\),读音为在 \(W^k\) 前加一个轻声的 /t/。

  【可变操作词】那“苹果、香蕉、菠萝和梨子”怎么办?并列词“和”为 \(\wd{la}2\),难道要“和”三次吗?对这些有并列意义的词,Wfurent 语提供还提供了“可变操作词”和“端点对象”。可变操作词记为 \(W^*\),端点对象是 \(\wd{meo}0\),用法是 \(/\wd{meo}0\ S_1\ S_2\ \cdots\ W^*/\),意义不言自明。虽然符合语法,但 Wfurent 人民诚挚地建议您,不要说 \(/\wd{meo}0\ W^*/\) 这样的废话文学。“苹果、香蕉、菠萝和梨子”:\(/\wd{meo}0\ \wd{apple}0\ \wd{banana}0\ \wd{pineapple}0\ \wd{pear}0\ \wd{lan}*/\)。(鬼畜素材:《\(/\wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{la}2\ \wd{la}2\ \wd{la}2\ \wd{la}2\ \wd{la}2/\) 和它的另外 41 种说法》。)

  【名词动化】我们已经有了动词(操作词)名化(对象化)的手段,或者说这种手段在存在 \(\wd{de}0\) 的语言中是自然而然的。实际上,Wfurent 语还提供了用于名词动化的操作词 \(\wd{cat}2\),在 \(/S_1~S_2~\wd{cat}2/\) 中,对象 \(S_2\) 被动化为一个 \(W^1\)(通常用作形容词或副词)修饰 \(S_1\)。例如“香蕉酸奶”(banana yogurt):\(/\wd{yogurt}0~\wd{banana}0~\wd{cat}2/\) 什么酸奶香蕉猫。

进阶语法

  Wfurent 语允许对操作词的 Curry 化使用。

  直接从例子出发,“我们或坚持或徘徊或放弃,我们或生活或生存或死亡,我们或新生或苟延或沉沦”(We [persist, linger or abandon], [live, survive or die], and [revive, remain or sank]),中括号用来划定 or 的结合范围,可见英语没办法强行说出这样一个句子。但这个句子可以用 Wfurent 语说(不妨认为上述英文动词都是 \(W^1\)):

\[\begin{aligned}
/&\wd{y}0~\wd{w}0~\wd{la}2\\
&\wd{meo}0\\
&\quad\wd{meo}0~\wd{persist}1~\wd{linger}1~\wd{abandon}1~\wd{lon}*\\
&\quad\wd{meo}0~\wd{live}1~\wd{survive}1~\wd{die}1~\wd{lon}*\\
&\quad\wd{meo}0~\wd{revive}1~\wd{remain}1~\wd{sank}1~\wd{lon}*\\
&\wd{lan}*/
\end{aligned}
\]

  (这样排版仅为方便语法分析。)其中 \(\wd{lon}*\) 是 \(\wd{lo}2\)(“或者”)的可变操作词形式。分析这个句子,内层的 \(\wd{meo}0~\cdot~\wd{lon}*\) 结构表达了三个动作的“或者”,整体构成了一个新的操作词。可以再形式化一点,令 \(\mathcal W^k\) 表示 Wfurent 语中一切对象数为 \(k\) 的语块构成的集合,那么

\[\wd{meo}0~\cdot~\wd{lon}*:(\mathcal W^k)^n\to\mathcal W^k
\]

就可以视作一个 Curry 化的函数,它将 \(n\) 个 \(W^k\)(“函数”)以“或者”的逻辑关系并列,打包成一个新的 \(W^k\)。当然,这就要求内部语块在完成内部匹配后,要不留下的都是对象(\(\in\mathcal W^0\)),要不留下的都是对象数相同的操作词。

  类似地,外层的 \(\wd{meo}0~\cdot~\wd{lan}*\) 以“并且”的逻辑关系将三个泛函打包成一个新的泛函(\(\in\mathcal W^1\)),它对应着英文原句中的九个动词以及它们的并列逻辑。最后这个 \(W^1\) 匹配了对象词(语块)\(\wd{y}0~\wd{w}0~\wd{la}2\)(“你”+“我”+“和”,即“你和我”“你我”。原则上 \(\wd{w}0\) 可以表示“我”“我们”,但这里作为语气上的强调就写成“你我”了),构成了完整句子。

  需要注意的是,只有 \(\wd{meo}0\) 衍生的结构能够进行泛函运算,因为只有它能够将操作词向前匹配对象的过程截留。

  再举一个简单的例子,“我想要香蕉、苹果和菠萝味酸奶”:

\[\begin{aligned}
/&\wd{w}0~\wd{yogurt}0\\
&\wd{meo}0\\
&\quad\wd{banana}0~\wd{cat}2\\
&\quad\wd{apple}0~\wd{cat}2\\
&\quad\wd{pineapple}0~\wd{cat}2\\
&\wd{lan}*\\
&\wd{tawa}2/
\end{aligned}=\begin{aligned}
/&\wd{w}0~\wd{yogurt}0\\
&\wd{meo}0\\
&\quad\wd{banana}0\\
&\quad\wd{apple}0\\
&\quad\wd{pineapple}0\\
&\wd{lan}*\\
&\wd{cat}2~\wd{tawa}2/
\end{aligned}
\]

其中 \(\wd{tawa}2\) 指“X 想要 Y”。我们同时也发现 \(\wd{cat}2\) 对 \(\wd{meo}0\) 结构具有分配律。


  欢迎大家提供必要的语法结构设定,提供一些词语也可以啦!

Wfurent 语语法概述的更多相关文章

  1. Objective-C语法概述

    Objective-C语法概述 简称OC 面向对象的C语言 完全兼容C语言 可以在OC里面混入C/C++代码 可以开发IOS和Mac OS X平台应用 语法预览 关键字 基本上都是以@开头(为了与C语 ...

  2. javascript运算符语法概述

    × 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...

  3. MySQL 安装 启动 基本语法概述

    MySQL 安装 启动 基本语法概述 MySQL安装和配置 我是直接使用安装包:mysql-installer-community-5.6.10.1.msi 安装的时候其中有几点要注意: 1.记住端口 ...

  4. Xaml语法概述及属性介绍

    Xaml语法概述 1.命名空间     xmal每个元素都对应着一个类,但是在xmal中,只提供类名是不够的,需要知道该类实在.net的哪个命名空间下面.Xaml解析器才能够正确的解析. 1 < ...

  5. <关于JSP技术>运行机制及语法概述(附对本次同济校内ACM选拔赛决赛的吐槽)

    (一)JSP运行的机制 JSP是一种建立在Servlet规范功能之上的动态网页技术,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过和ASP不同的是JSP文件中嵌入的是Java代码和JS ...

  6. Drools 规则文件语法概述

    概述(Overview) 以.drl为扩展名的文件,是Drools中的规则文件,规则文件的编写,遵循Drools规则语法.下面详细介绍一下Drools规则文件语法.具体参考官方文档: https:// ...

  7. QT (QSS) 编程, QSS语法概述。。setstylesheet

    http://www.cnblogs.com/davesla/archive/2011/01/30/1947928.html 转载] QT皮肤(QSS)编程 借用css 的灵感, Qt也支持Qt自己的 ...

  8. python语法_1基础语法概述

    http://www.runoob.com/python3 章节:教程.基础语法.数据类型.解释器.注释.运算符. 大纲 查看python版本 实现第一个python3.x程序,hello world ...

  9. holiday06-英语语法-语序和五种基本句式

    第六天 英语五种基本句式: 基本句式一:S V (主+谓) 基本句式二:S V P (主+系+表) 基本句式三:S V O (主+谓+宾) 基本句式四:S V o O(主+谓+间宾+直宾) 基本句式五 ...

  10. javascript基础语法——词法结构

    × 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...

随机推荐

  1. 霍夫(Hough)直线变换(直线检测)

    0 原理 霍夫变换在检测各种形状的的技术中非常流行,如果你要检测的形状可以用数学表达式写出,你就可以是使用霍夫变换检测它.及时要检测的形状存在一点破坏或者扭曲也可以使用.我们下面就看看如何使用霍夫变换 ...

  2. js常用函数 _01 关于 model()、substr() 和 正则表达式的使用

    js常用函数 _01 关于 model().substr() 和 正则表达式的使用 1.model() Bootstrap 模态框(Modal)插件 模态框(Modal)是覆盖在父窗体上的子窗体.通常 ...

  3. Syncfusion宣布开源其为.NET MAUI开发的14个控件

    .NET MAUI是Xamarin.Forms的进化版,增加了对构建桌面应用的支持..NET MAUI的特点包括统一的框架.对桌面应用的支持.性能改进.使用现代技术以及开源特性.开源 .NET MAU ...

  4. Kubernetes 中实现 MySQL 的读写分离

    Kubernetes 中实现 MySQL 的读写分离 在 Kubernetes 中实现 MySQL 的读写分离,可以通过主从复制架构来实现.在这种架构中,MySQL 主节点(Master)负责处理所有 ...

  5. 基于 Github 平台的 .NET 开源项目模板 - ISSUE 相关

    上一篇已经介绍了工程和脚本.下面我们将以具体的功能作为着手点, 展开对 project.yml 工程配置文件的讲解. 赘述 project.yml 使用周期 文件来源: 运行跟目录下的 scanner ...

  6. Nuxt.js 应用中的 webpack:error 事件钩子

    title: Nuxt.js 应用中的 webpack:error 事件钩子 date: 2024/11/25 updated: 2024/11/25 author: cmdragon excerpt ...

  7. python之常用方法(精)

    查找列表中出现最频繁的元素 使用 max() 函数可以快速查找出一个列表中出现频率最高的某个元素. >>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2] &g ...

  8. python语言实现_通过端口转发实现跨网络(多网络之间)通信_science_network

    本文使用python语言实现了一个端口转发的程序,该程序可以实现多网络之间的信息通信,当然这里有个前提,那就是多个网络都在一台主机上有可以连通的端口. 之所以有这个编写代码的需求,是因为最近使用的sc ...

  9. 网站刚上线,就被 DDoS 攻击炸了!

    今天是一个值得纪念的日子,你打开一罐可乐,看着自己刚刚上线的小网站,洋洋得意. 这是你第一次做的网站,上线之后,网站访问量突飞猛进:没过多久,你就拿到了千万的风投,迎娶了女神,走上了人生巅峰... 害 ...

  10. 推送本地镜像到 Harbor

    1.harbor没有启动 https 我本地 安装 harbor 的时候由于没有使用证书,所以将 harbor.yml https 注释掉. 2.配置docker镜像地址 比如 我的 ip 为 192 ...