2024-04-01から1ヶ月間の記事一覧
これは、たまに正規表現を使うけどすぐ忘れてしまう人のメモです。 正規表現の基本については下記の記事を参照。 忘れがちなメタ文字6つ 他言語からの類推が働かず、どれがどれか忘れがちなメタ文字は以下の6つ。 無理やり語呂合わせでおぼえることにする。 …
記事一覧 Haskellのモナドいろいろ (1) - 滴了庵日録 Haskellのモナドいろいろ (2) - 滴了庵日録 Haskellのモナドいろいろ (3) - 滴了庵日録 Haskellのモナドいろいろ (4) - 滴了庵日録 分類 上記の記事で述べた8つのモナドは、2種類に分類できる。 失敗系:…
Readerモナド Writerモナド Readerモナド Readerモナドは、読み取り専用のStateモナドのようなものである。 Stateモナドはグローバル変数のようなものとして利用できたが、 Readerモナドはグローバル定数のようなものとして利用できる。 Stateモナドでは状態…
Stateモナド Stateモナド STモナドは runST で値のみを取り出せたが、Stateモナドは状態も取り出せる。値と状態を取り出すには runState を、値のみを取り出すには evalState を、状態のみを取り出すには execState を用いる。前の記事でSTモナドで実装した …
IOモナド STモナド IOモナド IOはもちろんモナドである。 入出力という副作用を扱うために用いられる。 main も IO () という型の変数である。 (関数ではない)モナドだから return で値を中に入れることができる。 hoge::Int -> IO Int hoge x = return x ma…
Listモナド Maybeモナド Eitherモナド Listモナド リストもモナドである。意外なことにリストもモナドである。 リストには要素数が0個の空リストがありうる。 これは後述するMaybe や Either における失敗の表現のようなものとも言える。モナドだから return…
やりたいこと Qtで作成したWindowsアプリのインストーラをInnoSetupで作成する。 InnoSetupのインストール 下記コマンドを実行してInnoSetupをインストールする。 (本稿執筆時点でバージョン6.2.2) winget install JRSoftware.InnoSetupWindowsのノートPCで…
ディレクトリ構成について プロジェクト作成時に例えば上記のように設定すると、ディレクトリ構成は下記のようになる。 ソースディレクトリと同じ階層にビルドディレクトリができることに注意。 hoge ├─ piyo : ソースディレクトリ (プロジェクトファイルや…
やりたいこと Pythonで簡単なGUIアプリを作りたい。 PythonのGUIツールキットとしては、Tkinterが標準で付属している。 Tkinterは、TkをPythonから使えるようにしたもの。 Tkは古めかしいGUIツールキットだが、簡単なGUIで見た目を気にしないならじゅうぶん…
ソース全文はこちら → 多角形に関する計算 · GitHub 凸多角形か判定 # 凸多角形か判定 def isConvex(polygon): # n角形 n = len(polygon) # 時計回りまたは反時計回りで、隣接する辺のベクトルのクロス積がすべて同符号なら凸多角形 cp0 = 0 for i in range(…
「開発は、進むほど湖を汚したんですねえ。」 「今だから言えることです。貧しさから豊かさに向かうとき、日本じゅう政治も一人一人の暮らしも、豊かさを求めたでしょう。」 『琵琶湖周航殺人歌』(1990年, 水谷豊版「浅見光彦ミステリー8」より) 金田一耕助…
大河ドラマ『花の乱』(1994年)・第23回「密命」より 畠山義就「三郎、ここがどこだか分かるか?」 伊吹三郎「右衛門佐殿(畠山義就)の陣屋と心得まするが?」 畠山義就「たしかにわしの陣屋だが、つい先ごろまでは上皇様がお住まいあそばされていた仙洞御所だ…
アフィン変換とホモグラフィ変換とは? アフィン変換について ホモグラフィ変換 (射影変換) について ホモグラフィ変換の特殊解を解析的に解く Pythonによる実装例 参考 アフィン変換とホモグラフィ変換とは? アフィン変換:正方形を任意の平行四辺形に写せ…
いわゆるプログラミング言語ランキングみたいなやつはぜんぜん意味が無いと思っている。一口にプログラミング言語といっても、分野によって使われる言語の主流がぜんぜんちがうからだ。開発対象システム別の利用言語の比率というデータを見かけた。(これもや…
送信テキスト形式の設定 「ツール」>「アカウント設定」>「編集とアドレス入力」>「HTML形式でメッセージを編集する」のチェックをはずす。 「ツール」>「設定」>「編集」>「送信テキスト形式」で「プレーンテキスト形式のみ」を選択 受信メールをプレ…