data oriented programming
Data-oriented design - Wikipedia
ClojureClojure.icon
Data is immutable.
Data is explicit.
talk-transcripts/ValueOfValues.md at master · matthiasn/talk-transcripts
talk-transcripts/ValueOfValuesLong.md at master · matthiasn/talk-transcripts
Data is long live than the program.
value semantics
Swift が値型中心の言語になれた理由とその使い方 | Heart of Swift
copy-on-write
inout 引數
code:swift
func f(v: inout V) {
v.x += 1
}
var v: V = …
f(&v)
Introduction to Immer | Immer だ
code:javascript
v = produce(v, v => {
v.x += 1;
});
RustRust.iconは一つの參照を同時に所有できないので、參照を占有して扱へる
IO monad (圈)Haskell.iconは…
GoGo.iconで struct を値で渡す (func f(v V) {}。func (v V) f() {}) と copy されるけど copy-on-write ぢゃない。pointer を渡す (func f(v *V) {}。func (v *V) f() {}) と copy を抑へられるが copy されない
mutating func
inout な self
code:swift
extention V {
mutationg func inc() {
self.x += 1
}
}
var v: V = …
v.inc()
computed property は inout