JavaScriptで再帰を使う

配列の全要素の合計を求める関数を考える。この場合の配列は、整数の配列であるとする。 elispだと、以下のようになる。 defun を関数内部で使っているので、ラムダ式に書き直す。 これを JavaScriptで書き直す […]

$_POSTをいきなりエスケープ処理していいの?

『詳細 PHP7+MySQL入門ノート』p.272に、「フォームの入力データのチェック」として、以下のようなコードが載っている。 入力フォームを表示する (nameCheckForm.php) そして、次に nameCh […]

POSTで受け取った文字列をチェックするユーティリティ

『安全なWebアプリケーションの作り方 第2版』p.115 にあるサンプルファイルを少し変えてみた。このサンプルスクリプトは、クエリー文字列(Shift_JIS)を受け取り、表示するものである。 これを配列にも対応できる […]

プロトコルを使ったレコードの練習(Clojure)

『プログラミング Clojure 第2版』p.154 にレコードについての説明がある。ここでは、Midiシンセサイザを使って音符を例にとってレコード型を説明している。 ここで、自分のための練習として、図形を例にレコードに […]

Clojureでのファイルの配置とreplでの動かし方

『プログラミング Clojure 第2版』p.153 にこのような記述がある。 ここまでのすべてのコードを .clj ファイルにまとめておこう。読者のプロジェクトディレクトリに src/examples/datatype […]

Clojureで「プロトコル」というものを使う

『プログラミング Clojure 第2版』を読んでるんだけど、なかなか難しい。 今回は、p.145『6.3 プロトコル』のところを読んでるんだけど、本に記述ミスがあったこともあり、読むのにすごく時間がかかった。(サンプル […]

enum の使い方(Java)

『Javaで学ぶリファクタリング入門』の p.225〜p.227 にかけて、以下のような if文での処理をクラスによる処理に書き直す例が出ている。 これを、次のようにクラスにして処理を分けてた。 これを、匿名クラスを使っ […]

三目並べAI – 深さで刈り込まれたminimax探索

minimax探索だと時間がかかりすぎるので、時間短縮の方法として、探索木の深さを制限する。 今回は DEPTH=3 とした。 たとえば、以下のような局面があるとする。 白の手としては、いろいろ考えられる。が、それを深さ […]

三目並べAIのアルゴリズム(minimax探索)

『囲碁ディープラーニングプログラミング』を引き続き読んでいる。 肝心のディープラーニングの内容についての部分まで、なかなか到達しそうにない(^_^; 今回は、「三目並べ」である。 囲碁AIが次の一手を決めるとき、妥当な次 […]