Open mozii opened 4 years ago
您的提议显然是一种退步
Hi there, thanks a lot for your detailed proposal
乃一。三。五。would not work because 。
are optional in the language and in this case would cause ambiguity when removed. So it would have to be 乃一。乃三。乃五。Using 曰 to iterate through things seems to be common in Classical Chinese, but I'm not sure about using 乃 like so.
I think using 曰 for both name and value does not sound too bad. 名余曰正則兮,字余曰靈均
乃行是術曰 and 是術曰 are good for demarcating the end of arguments and the start of function body. In the example the arguments are quite simple, but there could be a lot more arguments of different types, which makes it easier to confuse with the function body for humans (and somewhat harder to parse for computers)
But thanks again for your suggestions, I'd love to hear more opinions from everyone!
您的提议显然是一种退步
您就是个傻逼
- 名余曰正則兮,字余曰靈均
emm, 仅仅从语言的角度提了点意见,综合编程来考虑更好。 不过,「名余曰正則兮,字余曰靈均」,此处的两个「曰」,跟你那里的用法显然是不同的。
May I replay this older issue here? I also feel that you have a bit overused '曰', it's better only use '曰' for value, meaning "the variable say out it's content like this", while select another character for naming the variable itself.
'乃' may be acceptable, and I want suggest another character '以':
吾有一数,名之以甲,曰三。// 其值曰三 as I preferred
吾有一数,曰三,乃名甲也。
有数名甲曰三。// simplest style in future consideration
wenyan-lang 毕竟不是古汉语,应该是从后者中精心设计(挑选)的一个子集,汉字有多义性,但程序语言力求精确。wenyan-lang 可以在程序语境下赋于每个关键字汉字以不同的特殊含义。
some suggestions for wenyan-lang
以下是一点建议,还是用现代普通话,便于交流。
Variables
吾有一數。曰三。名之曰「甲」。
var a = 3;
有數五十。名之曰「大衍」。
var dayan = 50;
昔之「甲」者。今「大衍」是也。
a = dayan;
吾有一言。曰「「噫吁戲」」。名之曰「乙」。
var b = "alas!";
吾有一爻。曰陰。名之曰「丙」。
var c = false;
吾有一列。名之曰「丁」。
var d = [];
吾有三數。曰一。曰三。曰五。名之曰「甲」曰「乙」曰「丙」。
var a=1,b=3,c=5;
两个「曰」放在一起,形式上不够简洁,音韵上也不够参差。有一个建议,可以用「乃」指
值
,用「名」指变量
。中国传统概念里边,变量更像是名
,值更贴近实
,名实相符。如下表。吾有一數。乃三。名之曰「甲」。
var a = 3;
有數五十。名之曰「大衍」。
var dayan = 50;
昔之「甲」者。今「大衍」是也。
a = dayan;
吾有一言。乃「「噫吁戲」」。名之曰「乙」。
var b = "alas!";
吾有一爻。乃陰。名之曰「丙」。
var c = false;
吾有一列。名之曰「丁」。
var d = [];
吾有三數。乃一。三。五。名之曰「甲」曰「乙」曰「丙」。
var a=1,b=3,c=5;
Control
若三大於二者。乃得「「想當然耳」」也。
if (3>2){ return "of course"; }
若三不大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。
if(3<=5){return "of course"}else{return "no way"}
為是百遍。⋯⋯ 云云。
for (var i = 0; i < 100; i++){ ... }
恆為是。⋯⋯ 云云。
while (true) { ... }
凡「天地」中之「人」。⋯⋯ 云云。
for (var human of world){ ... }
乃止。
break;
「乃得」在语境中是不准确的,
若三大於二者。乃得「「想當然耳」」也。
会让人以为只有当3>2,才能返回「「想當然耳」」
,实际上if (3>2){ return "of course"; }
并非如此。尝试作如下修改。删掉「乃」字,既能够减少误解,也更简洁。若三大於二者。得「「想當然耳」」也。
if (3>2){ return "of course"; }
若三不大於五者。得「「想當然耳」」。若非。得「「怪哉」」也。
if(3<=5){return "of course"}else{return "no way"}
為是百遍。⋯⋯ 云云。
for (var i = 0; i < 100; i++){ ... }
恆為是。⋯⋯ 云云。
while (true) { ... }
凡「天地」中之「人」。⋯⋯ 云云。
for (var human of world){ ... }
止。
break;
Math
加一以二。
1+2
加一於二。
2+1
加一以二。乘其以三。
(1+2)*3
除十以三。所餘幾何。
10%3
減七百五十六以四百三十三。名之曰「甲」。
var a = 756-433;
夫「甲」「乙」中有陽乎。
a || b
夫「甲」「乙」中無陰乎。
a && b
「有陽乎」,似不妥当。
夫「甲」「乙」中有陽乎。
不如夫「甲」「乙」中有陽耶。
除了个人感觉音韵上更协调一点,「耶」比「乎」可能更为被一般现代人理解其表疑问的语言色彩。夫「甲」「乙」中有陽耶。
a || b
夫「甲」「乙」中無陰耶。
a && b
Functions
吾有一術。名之曰「吸星大法」。是術曰。⋯⋯是謂「吸星大法」之術也。
function f(){...}
吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。
function f(a,b,c,d,e,f){...}
吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。
function double(a){var b = a * 2; return b;}
施「翻倍」於「大衍」。
double(dayan);
吾有一數。曰五。書之。
console.log(5);
这一句,
吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。
删掉乃行是術曰。
为宜,前文已有必先得
,已足够明确。另外,是谓
可以考虑改为所谓
。综合来看吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」。⋯⋯所謂「六脈神劍」之術也。
其他几句类似之处,更改如下。
吾有一術。名之曰「吸星大法」。是術曰。⋯⋯所謂「吸星大法」之術也。
function f(){...}
吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」。⋯⋯所謂「六脈神劍」之術也。
function f(a,b,c,d,e,f){...}
吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乘「甲」以二。名之曰「乙」。乃得「乙」。所謂「翻倍」之術也。
function double(a){var b = a * 2; return b;}
施「翻倍」於「大衍」。
double(dayan);
吾有一數。曰五。書之。
console.log(5);