第4章の型なし計算体系の実装がRustでもできそうだと思ったので、Rustで実装した。
続きを読むvoid型の関数は「値を返さない」のではない
void
型とはほとんどの場合において「値がないこと」を示す特別な型である。このとき、関数の戻り値の型としてvoid
型を指定したときに「値を返さない」と説明する人をしばしば見かける。
これは解釈次第では間違いではないのだが、「誤解が生じやすい説明」であることを今回は書いていこうと思う。
「Rustのトレイトは『高カインド多相のない型クラス』である」のブコメ返信とか
これは「Rustのトレイトは『高カインド多相のない型クラス』である」のブコメに対する返信をする記事です。気になったコメントがあれば随時追加していきます。
opaupafz2.hatenablog.com
JavaScriptでC共用体を表現してみる(実は、リベンジ)。
- 2022/8/5
- 「参照渡し」の誤用があったのですべて修正
その記事は(ブログごと)消していてもうないのだが、実は筆者は過去、JavaScript(以下JSと呼ぶ)でCの共用体について説明しよう、という記事を書こうとしたことがある。しかし、複数の変数がメモリを共用する、というのをコーディングする際あまりメモリを気にする必要のないJSでは表現することは難しくそのときは「残念ながら表現することは不可能だ」という結論となっていた。そのため、配列などを利用すると似たようなことができる、程度のことしか書いていなかった。
しかし近年、JSの知識を深めていて「あ、それっぽいことは実現できそうだぞ」と思ったので、ここにその手法を記す。
続きを読むRustのトレイトは「高カインド多相のない型クラス」である
Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。
また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。