マガジンのカバー画像

技術メモ

72
運営しているクリエイター

#プログラミング

[C++] std::find_if アルゴリズム

for 文と if 条件による探索

特定の条件に合致する要素を配列やコンテナの中から探す。

int index = -1;for (int i = 0; i != LENGTH_OF(items); ++i) { if (items[i] matches blah blah blah…) { index = i; break; }}

非常によくある処理で、それだけにたくさんの

もっとみる

入れ子の関数(Python)

Google Python Style Guide の和訳をお昼休みにすこしずつ進めている。
今日は 2.6 節の入れ子のクラスと関数を訳していた。

ところでこの節、のっけに以下の記述がある。

fine when used to close over a local variable

close をどう訳すかという点で悩む。たぶん「ローカル変数を(クロージャ―として)閉じこむのはよい」だろ

もっとみる

C 言語の「否定」演算子

Isabelle で遊んでいて「Isabelle の否定記号は ~ だけれど C 言語では ! だったよな」と頭に浮かび、続いて「いやでも C にも ~ あったよな」とおもいだし、論理否定とビットワイズ否定があったということが思いだされ、そして試してみた、というメモ。

Compare and Swap による Mutex モデル

Compare and Swap による Mutex モデル

10月23日水曜日、晴れデッドロック検出器のセミナーを受講するときに「CASのモデルって立てられるんだろうか(たぶん立てられる)」とおもっていたのだけれど、講師に先を越されてしまった。(質問しておいたわけでもないのに)

「いいね」をつけるだけではもったいない。自分でも自分なりの解釈でモデルを立てねば……! という野心が燃え上がりできあがったのがこちらになります。

ローカル変数なしでモデルをシン

もっとみる

Paging Library

10月9日水曜日、晴れAndroid Architecture Components というフレームワークがある。これを使うと画面を回転させたり設定が変わったりしてアクティビティオブジェクトが再生成されても(finish を呼び出すまでは)データが保持されるだとか(ViewModel の機能)、データの変更が UI の更新と同期するいわゆるデータバインディングを補助する LiveData だとかい

もっとみる

バックアップ

6月5日水曜日、晴れちょっと前に macOS のバックアップをするとしたら? と調べたところ、 OS 標準装備の Time Machine が、最近は SMB ファイル共有で利用可能になっているとのこと。
しかもこれまた OS 標準でファイル共有ができる! これは使ってみるしか!(2年くらい火を入れていない Mac Mini も転がっているし)

というので試してみた。

公式の説明では Moja

もっとみる

JDK インストール(macOS)

Oracle の JDK ダウンロードページにある .dmg からインストールしようとしたら、システムワイドに環境を汚染するほかないみたいで(「すべてのユーザーが使えるようになります」って、大きなお世話だ)気に入らない。

tarball から個人用の環境に導入できたので手順をご紹介。

1. JDK ダウンロードページから最新版の tar.gz をダウンロード
 このページを書いている時点では

もっとみる

バックトラック(続き)

12月5日水曜日、晴れ帰宅後、昨晩書いていたバックトラックのコードを手直し。

左上から順に愚直に埋めていくという流れは変えていない。
Visual Studio Code のコード整形がアグレッシブに改行を入れてくるので(開き波括弧を改行されるのは僕の美意識に反していてかなり辛い)、これに逆らってどれくらい行数を減らせるかのチャレンジ。

甲斐あって200行切った。

また main から、利用

もっとみる

バックトラック

12月4日火曜日、曇り曇っていたとおもう。たぶん(ずっとオフィスに閉じこもってコードを書いていたので天気を知らない。夜に出たら小雨が降っていた)

* * *

なんだかんだで「探索」プログラムがどうにも苦手。

かつて Qiita で探索問題を解く、なんて記事をあげたのも、この苦手意識をどうにかしたいから。

さて。
一昨日だったかに書こうとおもって投げだしていた数独ソルバー、バックトラック版を

もっとみる
僕の LISP 評価器が、順列生成を評価可能に

僕の LISP 評価器が、順列生成を評価可能に

11月11日日曜日、晴れようやく動くようになった……

文法解釈と実行までひととおり、そこそこの機能を備えた処理系をつくりあげたのはこれが初めてと言える、気がする。
(Brainf*ck でも順列生成くらいまでなら実行できるような気もする。とすればあれが初めてか?)

ツイッターで書いた「敗北感」は、僕が LISP の「評価」の仕組みを勘違いしていたこと。

* * *

LISP の評価は、ある

もっとみる

Let it be

11月6日火曜日、雨朝から夕方まで、雨。

ここのところ2時間おきに10分程度の散歩を挟むようにしているのだけれど、雨の中を出るのは少々キツかった。(でも出た。こういうところ、意地でも決めたことはやめないという融通の利かなさは僕の悪いところで、そしてたぶんいいところでもあるんだとおもう)

* * *

ところで唐突だけれどプログラミング言語の Kotlin の話。

Kotlin には、オブジェ

もっとみる

SECD マシン、そして

11月5日月曜日、晴れこれと言ってこれを書いておかねば! ということが思い浮かばない……。

5月の頭、この note を始めたころは、暴走する頭の中をどうにか外に出さないとという焦りで溢れかえっていたのだけれど、落ち着いたものだ。
(さらにその半年前はツイッターにとめどなくツイートを垂れ流していたんだっけ)

空っぽになったわけではない。いまだってしたいこと、考えたいこと、いくつかある。けれど、

もっとみる

関数の見通しをよくする(プログラム)

以下、メンテナンスしているコードの中にあったとある関数。(差し支えがないように少々定数名をいじっている)
Context という型から「ははあ Android か」とわかる方もいらっしゃいますよね?

public static String shurinkString(final Context context, final String str) { String validateStr

もっとみる