duangsuse::Echo
本来各种流逻辑搞不清图形思维混乱,结果莫名其妙就试出来了…… 真是面向 debug 编程。
...还是有 bug……所以不能面向守株待兔编程。
瞎猫撞上死耗子
瞎猫撞上死耗子
实在是过于写实,我开始回忆起之前我写 ToC Tree 的时候那个苦逼…… #web #JavaScript 前端太难了!
#PLT 这次绝句的变化主要还是语法的变化,不过不要看不起语法变化,因为它们使得语言更优雅了。
1. 「解量」「解对…里的(模式)……」
变成了
新语法类似改「重复当」为「重复若」时一样,更对称了,这不仅仅意味着实现解析器/翻译器会更容易,学起来也会更容易。
2. 「不」变成了现在唯一的『中后缀修饰』
比如 属(is)、存于(in)、是(==)、即是(===)、大(>)
现在都不需要专门定义特定语法了,用户利用自定义记法定义的如
也不需要再对应地定义一个模板化的
3. 『人称』语法被统一了
第一人称是面向对象术语「我」「亲」,表示对象的和对象继承自的事物,只有他们可以有类似 Kotlin 的 label
label 的引用解析和 Kotlin 差不多,绝句混用了
「若」、「判」支持第二人称「你」,可以简化「若」条件和体,以及替换 Kotlin 的
「若」当然也包括「重复若」「重复……若」
「对」同时支持第二人称和第三人称的「它」「他」「她」
中缀链的「」和逗号块都是第三人称的。
4. Comparable 和 Any 要么必须支持 equals(Any) 要么必须提供 <T> 的问题解决了
就是抄 Rust 的
但绝句也没说非得直接 100% 兼容 Java 啊?
比如
5. 然后还有许多也整理出来的概念
逗号表示法:逗号布局、逗顿句简写、逗号块、逗号取调链 (现在给删了,就是逗号块)
文法层次:常量、言元、言、句、段、体、书
1. 「解量」「解对…里的(模式)……」
变成了
量提 (甲、乙) = 听去一数对() 对用户与索引里的提 (此人、编号),说("$编号 ${此人的名}")。 新语法类似改「重复当」为「重复若」时一样,更对称了,这不仅仅意味着实现解析器/翻译器会更容易,学起来也会更容易。
2. 「不」变成了现在唯一的『中后缀修饰』
比如 属(is)、存于(in)、是(==)、即是(===)、大(>)
现在都不需要专门定义特定语法了,用户利用自定义记法定义的如
记法「为」的量 为空:真假 取者…… 也不需要再对应地定义一个模板化的
不为空 了,因为现在有中后缀否定修饰「不」存在。(这也是Kotlin没有的特性)3. 『人称』语法被统一了
第一人称是面向对象术语「我」「亲」,表示对象的和对象继承自的事物,只有他们可以有类似 Kotlin 的 label
我[某事]。label 的引用解析和 Kotlin 差不多,绝句混用了
我[…]/亲[…] 这种语法但其实是没什么问题,因为量本来就不该起成标签有的名字。「若」、「判」支持第二人称「你」,可以简化「若」条件和体,以及替换 Kotlin 的
when (val x = expr)。「若」当然也包括「重复若」「重复……若」
「对」同时支持第二人称和第三人称的「它」「他」「她」
中缀链的「」和逗号块都是第三人称的。
a令置为「它+1」
(用户)里去找,他的名字是"某甲"。的项一
青蛙里去找,它的名字是"👓"。的项一 4. Comparable 和 Any 要么必须支持 equals(Any) 要么必须提供 <T> 的问题解决了
就是抄 Rust 的
Self 类型嘛。虽然我不知道类型系统到时候具体是什么区别,我看大概是没什么问题,除非以后编译到 JVM…… 显然不可能很简单地解决。但绝句也没说非得直接 100% 兼容 Java 啊?
比如
值 里面就可以这么定义:物 『值』为
“……”
待例、算符的事 试等(另:我属“Self”):真假 5. 然后还有许多也整理出来的概念
逗号表示法:逗号布局、逗顿句简写、逗号块、
文法层次:常量、言元、言、句、段、体、书
duangsuse::Echo
垃圾 ES6 快快还我 elvis operator 和 (?.) null branch access 来!
TypeScript 3.7 已经支持了 (?.) ,和 ES6 修订一样叫 optional chain
sudo npm install --save-dev @types/node
npm update --save-dev @types/node 好了重写马上就完成了!
duangsuse::Echo
sudo npm install --save-dev @types/node npm update --save-dev @types/node 好了重写马上就完成了!
唉,还是有很多很多的问题,只能等着了……
还有 绝句第一稿的一些问题要改…… (虽然马上也不看第一稿了)
还有 Kotlin 关系式博文要写
还有 Literate Kotlin 工具要写……
ParserKt 也可以改一下了……
……
还有 绝句第一稿的一些问题要改…… (虽然马上也不看第一稿了)
还有 Kotlin 关系式博文要写
还有 Literate Kotlin 工具要写……
ParserKt 也可以改一下了……
……
duangsuse::Echo
艹,还不如用 FP.js 的解析器呢(笑话
我终于彻底搞明白 lastItem, peek, next, consume 这些的区别了……
噢……原来 SaveIterator 和 PeekConsume 有本质上的区别啊…… 原来允许不移动数据指针和保存上一项是不一样的啊…… 原来真的不可能直接兼容 takeWhile 啊……
噢……原来 PeekConsume 实际上不能算 Iterator 啊……
噢……原来 tailConsume 是为了方便写解析器而对整体数据输出无影响,原来 tailConsume 也不一定得做成 boolean 判断的形式,只是最后一项得能 yield 出就可以了,Java 形式必须兼容 hasNext 才有 boolean tailConsumed = false;
噢……原来 ES6 Generator 版的 PeekConsume 实现 tailConsume 会更简单啊……
原来流处理应该那样分析啊…… 其实序列 1,2 算算 takeWhile (>=2) 什么的已经足够,再多看看索引 index 抵胡想半小时。
噢……原来 SaveIterator 和 PeekConsume 有本质上的区别啊…… 原来允许不移动数据指针和保存上一项是不一样的啊…… 原来真的不可能直接兼容 takeWhile 啊……
噢……原来 PeekConsume 实际上不能算 Iterator 啊……
噢……原来 tailConsume 是为了方便写解析器而对整体数据输出无影响,原来 tailConsume 也不一定得做成 boolean 判断的形式,只是最后一项得能 yield 出就可以了,Java 形式必须兼容 hasNext 才有 boolean tailConsumed = false;
噢……原来 ES6 Generator 版的 PeekConsume 实现 tailConsume 会更简单啊……
原来流处理应该那样分析啊…… 其实序列 1,2 算算 takeWhile (>=2) 什么的已经足够,再多看看索引 index 抵胡想半小时。
duangsuse::Echo
ES6 的 iterator 真是麻烦死了,hasNext/next 根本分不清
还是 Ruby/Python 式的
StopIteration 好……class PeekConsume<T> {
iter: Iterator<T>
last: IteratorResult<T>
constructor(iter: Iterator<T>) {
this.iter = iter;
this.last = iter.next()
}
*iterator() {
if (this.last.done) return;
yield this.last;
this.last = this.iter.next()
}
get peek() {
return this.last.value;
}
} 这个很正常,但是 peek 和 next 不在一个地方访问,所以不能直接用 Generator 写。