\[\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. ansible批量部署apache

    ansible批量部署apache 目录 ansible批量部署apache 安装ansible 基于ansible进行基础准备 配置受控端本地软件仓库 安装受控端Apache(httpd)的最新版本 ...

  2. Angular 19 "要" 来了⚡

    前言 Angular 19 预计会在 11 月中旬发布,目前 (2024-10-27) 最新版本是 v19.0.0-next.11. 这次 v19 的改动可不小哦,新增了很多功能,甚至连 effect ...

  3. Qt Creator pro文件常见配置

    HEADERS:指定项目的头文件(.h) SOURCES:指定项目的源文件(.cpp) FORMS:指定协议UIC处理的由Qt Designer生成的.ui文件 RESOURCES:指定需要rcc处理 ...

  4. nsenter 常用操作

    nsenter 是一个可以用来进入到目标程序说在 namespace 中运行命令的工具,一般可以用于在容器外 debug 容器中运行的程序.简单记录一下 nsenter 的常用用法. 常用参数 最常用 ...

  5. Converter Tutorial

    Setting up a simple example This is the most basic converter... let's start with a simple Person: pa ...

  6. PythonDay4Advance

    PythonDay4Advance 函数 引言:比如植物大战僵尸,这个游戏本身也是由代码编写,现在假设有一种豌豆射手,每发射一次 炮弹会执行100行逻辑代码 如果我在程序,每当需要发射炮弹的时候,都要 ...

  7. Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Faile

    解决方法: 1.新建一个安卓应用,复制下面路径红色框的代码  去替换  导入应用中的代码,就是修改gradle版本: 2.在导入的应用中如下路径添加信息 代码: android.overridePat ...

  8. 生成条形码二维码DataMatrix条码.EAN码.39码.交叉25码.UPC码.128码.93码.ISBN码.Codabar等

    1.引用Spire.Barcode 在Nuget包中安装Spire.Barcode 2.生成条形码 //创建 BarcodeSettings对象 BarcodeSettings settings = ...

  9. jmeter使用jdbc连接SQL server,执行SQL报错处理

    前置环境参数:jdk-8u391-windows-x64,驱动:sqljdbc4.jar 备注:这是解决后的截图,将就用 问题一:使用jmeter5.5,使用jdbc连接SQL server,执行SQ ...

  10. influxdb group by(1d) 查询注意事项

    转载请注明出处: 在 InfluxDB 中,默认的时区是 UTC(协调世界时).所有的时间戳在数据写入时默认视为 UTC.这意味着如果没有在插入数据时指定其他时区,InfluxDB 会将所有时间数据处 ...