duangsuse::Echo
https://codon.com/hello-declarative-world Either(|) Both(&) 这不是比 disjuction, conjuction 对非英语母语的人友好多了么,我英文词感不算差偶尔脑力都跟不上辨别「disj是或」还是「conj是或」。
因为内联图片不能打印(要不然耗费太多墨水),我在这里把内联图片内容写一下:
more abstract(抽象级提升) →
unstructured(无结构编程) → procedural(过程式) → | imperative(表述式) → declarative(定义式) | → functional(函数式) → relational(关系式)
从函数式到关系又有一个断层:
programmer(human): what → solver(machine): how
Function:
(\x y. x+y) ← (x)19 ← (y)23
→ 42
Relation:
(\x y. x=y) ← (x)5 ← (y)?
→Yes. y=5
(\x y. x<y) ←(x)? ←(y)5
→Yes. x=4
→Yes. x=3
...
→Yes. x=0
State-Goal:
"State → Goal → State0, State1, ..."
Variable: (equal v v) (either g g)
State: "with variables x, y, ..., g" (both g g)
Some Functions:
['a', 'b', 'c'] → ('a', ('b', ('c', nil)))
3 → (:+, (:+, (:+, nil)))
more abstract(抽象级提升) →
unstructured(无结构编程) → procedural(过程式) → | imperative(表述式) → declarative(定义式) | → functional(函数式) → relational(关系式)
从函数式到关系又有一个断层:
programmer(human): what → solver(machine): how
Function:
(\x y. x+y) ← (x)19 ← (y)23
→ 42
Relation:
(\x y. x=y) ← (x)5 ← (y)?
→Yes. y=5
(\x y. x<y) ←(x)? ←(y)5
→Yes. x=4
→Yes. x=3
...
→Yes. x=0
State-Goal:
"State → Goal → State0, State1, ..."
Variable: (equal v v) (either g g)
State: "with variables x, y, ..., g" (both g g)
Some Functions:
['a', 'b', 'c'] → ('a', ('b', ('c', nil)))
3 → (:+, (:+, (:+, nil)))
duangsuse::Echo
https://codon.com/hello-declarative-world Either(|) Both(&) 这不是比 disjuction, conjuction 对非英语母语的人友好多了么,我英文词感不算差偶尔脑力都跟不上辨别「disj是或」还是「conj是或」。
Array.prototype.zipWith = function*(ys) { const minLenIn2=Math.min(this.length, ys.length); for (let i=0; i<minLenIn2; ++i) yield([this[i], ys[i]]); };
—const imgContents = String.raw`
LRUG August 2015 "Hello, declarative world"
by Tom Stuart 10.08 2015
skillsmatter.com
—
more abstract(抽象级提升) →
unstructured(无结构编程) → procedural(过程式) → | imperative(表述式) → declarative(定义式) | → functional(函数式) → relational(关系式)
—
从函数式到关系又有一个断层:
programmer(human): what → solver(machine): how
—
more abstract(抽象级提升) →
unstructured(无结构编程) → procedural(过程式) → | imperative(表述式) → declarative(定义式) | → functional(函数式) → relational(关系式)
—
Function:
(\x y. x+y) ← (x)19 ← (y)23
→ 42
—
Relation:
(\x y. x=y) ← (x)5 ← (y)?
→Yes. y=5
—
(\x y. x<y) ←(x)? ←(y)5
→Yes. x=4
→Yes. x=3
...
→Yes. x=0
—
State-Goal:
"State → Goal → State0, State1, ..."
—
Six Primitives:
Variable: (equal v v) (either g g)
State: "with variables x, y, ..., g" (both g g)
—
Array to Pairs
['a', 'b', 'c'] → ('a', ('b', ('c', nil)))
—
Number to Pairs
3 → (:+, (:+, (:+, nil)))
`.split("—").map(s => s.trim());
document.querySelector('html').style.background='white'
let documentImages = [...document.querySelectorAll('img')];
let imgWithNewContents = [...documentImages.zipWith(imgContents)];
imgWithNewContents.forEach(t => { t[0].src=''; t[0].alt=t[1]; });
document.querySelectorAll('pre, blockquote').forEach(it => it.style.overflow = 'hidden')
—
body { width: auto !important; padding: unset !important; }
body { font: unset !important; }
duangsuse::Echo
Array.prototype.zipWith = function*(ys) { const minLenIn2=Math.min(this.length, ys.length); for (let i=0; i<minLenIn2; ++i) yield([this[i], ys[i]]); }; — const imgContents = String.raw` LRUG August 2015 "Hello, declarative world" by Tom Stuart 10.08 2015 …
……为了打印个东西学习居然做了半天 #JavaScript ES6 前端的工作,我容易么我…… 😂
绝句所谓的
存储 不恰当,还是改成『取置』吧。对何<值者>其中 值者:值 皆有
扩物 取置<值者?> 为
事 置空() 为
我去置为(空) forall T where T: Any theres
extension Modifible<T?> where
fun makeNull() where
this.set(null)#book 《Kotlin 极简教程》怎么说用处也是蛮不小的。虽然内容新颖有深度,不过如果一定要提意见,就是有些东西的描述还可以再好好斟酌一下,是否足够简明、是否存在赘述或者该泛化没泛化的情况。
annotationUseSiteTarget ('field' | 'property' | 'get' | 'set' | 'receiver' | 'param' | 'setparam' | 'delegate')
词法就等 Kotlin 然后形式化时弄吧,不就是多了个汉字数字吗(我相信弄完后,很多人就会出来骂我,因为一般来说根本不会有人写中文数值,但我这么做是有其他理由的)
https://duangsuse-valid-projects.github.io/Share/绝句/绝句词法#解析器实现-kotlin-literate 看起来就像是『Literate Programming』,而我开始的时候没打算完全这样,重视代码质量后居然简单地过滤拼接一下都可以直接让Kotlin编译器拿去编译!
断续的事 后继节点(e:节点) 为
变节点 a 初 e
重复,断续(a)、a = a的下一项。当a不空。 “不空是一种后缀记法”
对何<项>皆有 扩物 可迭 为
断续的事 取前(取:命题<项>) 为
对我里的,
若取(它),断续(它)。否则,停下。 “……我开始斟酌原设计的『回交』是否应该改回来了”
事 启用代码过滤(id:元素名) 为
量 baseDiv = 文档去取以(id)名的元素
量 codeDiv = 文档去取以("$id-code")名的元素 “当然也是记法,内联物+记法+扩物”
codeDiv的HTML代码 = "<button>显示 ${id} 的代码</button>" “当然绝句可以有更简洁而且检查更多的DSL”
codeDiv的子素[0]的点击监听 = 函数,codeDiv的HTML代码 = 滤出代码(baseDiv)映为(::HTML代码)以("<br>")拼合。
事 滤出代码(e:元素) 为
量 全后继 = 后继节点(e)
量 此部分 = 全后继去取前(::部分未完)“的”
量 受用项目 = 此部分去滤出,接受类列表(它的类列表)。“的”
回受用项目
其中,
事 部分未完(e:元素) = e的类列表?去试存("literate-end") 空则否
事 接受类列表(classes:元素) = "language-kotlin"存于classes
duangsuse::Echo
断续的事 后继节点(e:节点) 为 变节点 a 初 e 重复,断续(a)、a = a的下一项。当a不空。 “不空是一种后缀记法” 对何<项>皆有 扩物 可迭 为 断续的事 取前(取:命题<项>) 为 对我里的, 若取(它),断续(它)。否则,停下。 “……我开始斟酌原设计的『回交』是否应该改回来了” 事 启用代码过滤(id:元素名) 为 量 baseDiv = 文档去取以(id)名的元素 量 codeDiv = 文档去取以("$id-code")名的元素 “当然也是记法,内联物+记法+扩物”…
写完突然感觉中文编程还真是有点不可言表的问题,没空格 只用「的」是不是反而使得它更难阅读?
不过我想加了代码高亮肯定可以解决
……怎么莫名感觉好像没那么好?真的没那么好还是习惯问题呢?
还是说我技艺太浅,设计不出好的『中文编程语言』来?
不过我想加了代码高亮肯定可以解决
若取(它),回交(它)。否则,停下。 何况这一句真的是好看,洋文是写不出的if predicate(it) yield(it) else break ……怎么莫名感觉好像没那么好?真的没那么好还是习惯问题呢?
还是说我技艺太浅,设计不出好的『中文编程语言』来?