【Clojure】マクロを用いた関数の共通化

2023/04/24:更新(シンタックスクォートのみを用いた方式を紹介。それ以外を削除。) 内容がほとんど同じな2つの関数 java.timeのLocalDateTimeとZonedDateTimeのparseメソッドを呼び出す2つの関数があります。 この2つの関数をマクロを用いて共通部分を…

Clojureで日時を扱う方法

java.timeパッケージ Clojureからjava.timeパッケージを利用することでClojureで日時を扱うことができます。 java.timeパッケージはイミュータブルなデータ構造になっているのでClojureからでも安心して使えます。 java.timeパッケージの使い方 java.timeパ…

YouTube Data APIで動画一覧を取得【Clojure】

概要 YouTubeの特定チャンネルの動画一覧を取得・表示するプログラムをClojureで作りました。 プログラムはGitHubにホストしてあります。 このプログラムでは、取得した動画情報をSQLiteに保存します。 そして、SQLiteに保存された動画情報をHTMLに出力して…

多重ループを避ける方法(深さ優先探索)【Rubyで覆面算】

2023/03/04(土)修整:Problem#solve_dfsとProblem#dfsを高速化 2023/03/06(月)修整:Questionクラスをリファクタリング 目次 目次 多重ループを避ける方法 覆面算とは 覆面算の解き方 10重ループと深さ優先探索の比較 覆面算を解くプログラムのソースコ…

cutでは列の入れ替えはできないので代替のRubyスクリプトを紹介

cutコマンドには-fオプションがあり-d区切りでスプリットした列の中から特定の列だけ抜き出すことができる。 しかし、列を入れ替えることはできない。 そこでRubyで入れ替えOKで好きな列を抜き出すスクリプトを書いたので紹介する。 require 'optparse' requ…

MTGをしばらくお休みしようと思う(ファイレクシア:完全なる統一)

MTGを始めたきっかけ MTGを始めたのはイコリア:巨獣の棲処が発売される少し前の2020年4月頃。 その頃、ふとMTGがどんなゲームか気になり公式ホームページのスタートガイドを見てゲームのルールを覚え始めた。 そこでウェルカムデッキの存在を知り、マジック…

ユダヤの法則(78 : 22の法則)のHaskellコード

ユダヤの法則とは ユダヤの法則は、世の中はすべて78:22の割合で成り立っているという考え方です。 また、「78 : 22の法則」とも言います。 例えば、以下のような事実があります。 ①地球の海と陸地の割合は、海の78%に対して陸地が22% ②空気中の成分…

帰納法は健全な証明じゃない

帰納法とは 帰納法とは、実験結果などの事実から一般的な法則を推論することです。 例えば、カラスAは黒い。カラスBも黒い。...カラスZも黒い。という事実から「全てのカラスは黒い」と結論づける推論は、帰納法になります。 帰納法の問題点 しかし、A~Zまで…