2021-01-01から1年間の記事一覧
前回をより理解しやすくするための補足記事的なもの。 opaupafz2.hatenablog.com今回、「代数的データ型」について、自分なりの解釈を述べていこうと思う。これによって前回の記事で自分が何を言いたかったのかより理解を深めていただければ幸いである。 注…
関数型プログラミングを学ぶ際に登場することのある単語として「代数的データ型」というものがあり、直和型はこの代数的データ型の一種である。代数的データ型において、「列挙型はCの列挙体(enum)、直積型はCの構造体(struct)に相当する」という説明に…
前編からの続き。 opaupafz2.hatenablog.com前作: Pythonで始めるプロトタイプベースOOP opaupafz2.hatenablog.com opaupafz2.hatenablog.com
前作: Pythonで始めるプロトタイプベースOOP opaupafz2.hatenablog.com opaupafz2.hatenablog.com
PHPは90年発のプログラミング言語にしては、バイナリを扱う方法に乏しく、思ったようにバイナリを扱えないことが多い。バイナリを扱った事例も少ないためか、バイナリを扱うためのイディオム的な物もなかなか見つからない。そこで、PHPでバイナリを極力効率…
早速ですが、問題です。"9"と"10"、比較するとどちらが大きいでしょうか?ソートする際に文字列を比較することがある。その際、文字列に数字が含まれている場合、自分の思った通りに動かないことがあると言うことを今回書かせていただこうと思う。
opaupafz2.hatenablog.com前に、Pythonではクラスオブジェクトを扱うことで、プロトタイプベースなオブジェクト指向プログラミング(以下OOP)が可能であることを書いた。今回はその続編として、より快適にPythonでプロトタイプベースOOPが可能となるような…
2022/9/18 「サンク」周りの怪しい言い回しを修正 opaupafz2.hatenablog.com前回、スタックメモリの観点からもHaskellで再帰をしても良いと言う理由と再帰を書く際に気を付けなければならないことについて書いた。今回は、その補足として「末尾再帰で書かざ…
2022/9/18 「末尾再帰最適化」を「末尾呼び出し最適化」に修正 「サンク」関連の怪しい言い回しを修正 その他微妙な表現を修正 Haskellのような純粋関数型プログラミング言語では基本破壊的代入が許されていないために、ループするための構文、または式が用…
2021/09/04 最後に補足を追加 2021/09/05 「補足」項にて、ローカル文字列の注意点を追記 Cを学ぶにあたってよくぶち当たる壁と言われているのがポインタである。なぜポインタは難しいと言われるのか?今回はそもそもポインタとは何なのかを交えてわかりやす…
2021/08/12 Brainf*ckインタプリタのコードにミスを見つけたので修正 Brainf*ckはスタック指向ではないため「Brainf*ckはスタック指向である」旨の記述を削除 ※注意※ 今回の記事は人によって考えが異なる可能性のある内容が含まれています! したがって今回…
2021/07/18 Rustのムーブによるエラーの解決策に参照を使った方法を追加 シャローコピーが採用されているプログラミング言語の例を記述 2022/07/10 シャローコピーの認識が大きく異なっていたので修正 シャローコピーの例のJavaScriptコードをより見やすいも…
2021/07/04 載せたコードにミスがあったので修正 「サブクラス」、「スーパークラス」を「派生クラス」、「基底クラス」に統一 2022/08/05 「参照渡し」の誤用があったので修正 前にRustはオブジェクト指向型言語ではないという記事を書いた後で、Twitterで…
Pythonのクラスは他言語のクラスと比べると少し異質なものである。その性質は、プロトタイプベースオブジェクト指向プログラミング(以下OOP)をするには十分である。というわけでPythonでプロトタイプベースOOPをしてみる。
前の記事でオブジェクト指向にはざっくり2つの考え方があると書いた。それとは別にオブジェクト指向を実現するためのアプローチとしてプロトタイプベースのオブジェクト指向がある。
2021/06/12 「Rustにはメッセージングという概念がない」「Rustはオブジェクト指向型言語ではない」で説明不足な点を追記 Simulaベースのオブジェクト指向型言語としてRubyを入れていた→除外 2021/06/15 「追伸」追加 ja.wikipedia.org Rustはマルチパラダイ…
Rustのトレイトはトレイトではないの続編的な物。というか補足。
2022/02/12 以下の記事にて書き直しました。「Rustのトレイトはトレイトではない」項をご覧ください。 opaupafz2.hatenablog.comプログラミング言語「Rust」に登場する「トレイト(Traits)」は、実はSchärli氏らが提唱しているトレイトではないという話。こ…
Ukicodeと申します。本日より「考えていることをまとめようかなー」という備忘録の意味を込めて、ブログを始めることにしました。実は昔ブログを開設していたのですが、正直言って黒歴史でした。 Twitterもやっているのですが、これも今までの自分を切り捨て…