Rust
みなさま ラムダ計算 をご存知でしょうか。 ラムダ計算はある種の関数型プログラミング言語の体系で、変数と関数, そして関数適用というミニマルな構成要素だけでチューリング完全な表現力を持っています。 この記事では、ラムダ計算の中でも特に単純な 型無…
Rust は「コストのかかるコードは書くのが苦痛であるべき」という思想のもとデザインされている気がする。 というのも Rust を書いていると「意図的にショートカットが用意されていない」と思える場面があるからだ。 いくつか例を挙げてみようと思う。 文字…
どうも id:todays_mitsui です。この記事は はてなエンジニア Advent Calendar 2023 の23日目の記事です。 昨日は id:cateiru さん、明日は id:motemen さんです。 『達人プログラマー』という有名な書籍があって、そのなかで毎年少なくとも一つの言語を学習…
はっきり云って Rust は難しいです。 Rust は GC を持たず、 所有権という概念の上に構成されています。 そのため所有権のある値そのものを扱うより、借用 (参照) した値を扱うほうが難しくなりがちです。 なぜ借用のほうが扱いが難しいかと云うと、 所有権…
Rust では所有権と借用, そしてライフタイムという概念があるため、値そのものを取り扱うより参照 (借用) を取り扱うことが難しくなりがちです。 特に関数から参照を返そうとすると、そこにはライフタイムの概念が絡んできます。 例えば下記のように関数内か…
Rust ネタです。 Rust では構造体に対してメソッドを定義できます。 公式のドキュメント では Rectangle 構造体に対して面積を求める area メソッドを定義する例が紹介されています。 struct Rectangle { width: f64, height: f64, } impl Rectangle { /// …
ご存知の通り Rust 言語はとても厳格な型システムを持っています。 そのためノリで書こうとしてもコンパイラや Language Server から「ここ、型が合わないよ」と言われて実行すらさせてもらえないことが稀によくあります。 ですが、そんなことばかり言っても…