ログ

見る価値ありません

2021-01-01から1年間の記事一覧

call/ccでジェネレータを実装

最初に特化したジェネレータを返す関数を実装し、それを一般化する 数値をインクリメントしつつ無限ループする関数を返す関数を書く (define (make-counter) (lambda () (let rec ((c 0)) (rec (+ c 1))))) これに途中で中断できるように call/cc を追加する…

R7RSを書く

main.scm (import (lib func)) (f 'a 'b 'c) lib/func.scm (define-library (lib func) (import (scheme base) (scheme write)) (export f) (begin (define (f . args) (display args) (newline)))) $ gosh -A. main.scm -A<path> オプションは *load-path* に指定</path>…

sqlite-jdbcでDBファイルをリソースディレクトリに設置する

resource/com/example/test.db に置くと Connection connection = DriverManager.getConnection("jdbc:sqlite::resource:com/example/test.db"); https://github.com/xerial/sqlite-jdbc/blob/master/Usage.md#reading-database-files-in-classpaths-or-netw…

Ruby クロージャでインスタンス変数を捕捉する

久しぶりにRuby書いた ググってもカスだったのでメモる class Test def initialize @count = 0 end def closure Proc.new { @count += 1 puts @count } end end t = Test.new c = t.closure 10.times do c.call end $ ruby test.rb 1 2 3 4 5 6 7 8 9 10

gitの出力を色付きのままパイプに流す

常時 $ git config --global color.ui always 一時的 $ git -c color.ui=always <subcomand></subcomand>

docker-compose: command not found

archlinuxのdocker-composeがdocker compose cliになってた(command not found: docker-composeって言われて混乱した)— ぬぬん (@arlechann) September 30, 2021 いつの間にか docker compose cli になってました docker-compose の v2 かららしいです なの…

TypeScript/JavaScriptで永続赤黒木

バグってたら教えて下さい 乱数挿入したこの永続赤黒木をgraphvizで視覚化 JavaScriptはGitHubに github.com ライセンス CC0-1.0 type Color = 'red' | 'black'; type Pair<T, S> = { readonly key: T, readonly value: S, }; const Pair = { from<T, S>(key: T, value: </t,></t,>…

JavaScriptで優先度付きキュー(二分ヒープ)

class PriorityQueue { constructor(comp) { this.heap = []; this.compare = comp; } isEmpty() { return this.heap.length == 0; } push(x) { this._upHeap(this.heap.push(x) - 1); } pop() { if(this.isEmpty()) { return undefined; } this._heapSwap(0…

JavaScriptで償却定数時間キュー

class Queue { constructor() { this.front = []; this.back = []; } isEmpty() { return this.front.length == 0 && this.back.length == 0; } push(x) { this.back.push(x); } pop() { if(this.isEmpty()) { return undefined; } if(this.front.length == …

SICP 練習問題1.19 フィボナッチ数を対数時間で求める

から また から よって (define (even? x) (= (remainder x 2) 0)) (define (fib n) (fib-iter 1 0 0 1 n)) (define (fib-iter a b p q count) (cond ((= count 0) b) ((even? count) (fib-iter a b (+ (* p p) (* q q)) (* q (+ (* p 2) q)) (/ count 2))) …

office365のsmtpサーバについて

host: smtp.office365.com:587 encrypt: TLS username: office365アカウントemail pass: office365アカウントpassword