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

メモ

Haskellのモナドの話には圏論の言葉がよく出てくるのですが、ざっくりとした理解しかできていません。自分の理解をまとめるためにメモを残します。間違っているかもしれないので、鵜呑みにはしないでください。圏論はなんとなく集合論をさらに抽象化したよう…

Haskellで数値計算

普段はJavaやFortranで数値計算をしているのだが、使える範囲でHaskellも使ってみたくなった。宣言的に書けるのでコードが簡潔になることや、副作用が厳格に管理されている上に、静的な型付けがしっかりしていてコンパイラが賢いので、バグが見つけやすいこ…

Schemeの継続と環境

前回の記事で、call/cc は呼ばれた時点での継続を取り出してくれるということを書いたのだが、その時点での環境は保存されているのだろうか? 前回の記事に出て来た wayback 関数を少し書き換えて実験してみる。 (define cont #f) (define (capture x) (call/…

Schemeと継続

目次 継続とcall/cc 継続とは call/ccは継続を取り出してくれる 継続はファーストクラスのオブジェクト 時をさかのぼる どこでも取り出せる継続 継続の利用 大域脱出 処理の一時中断と再開 まとめと参考文献 継続とcall/cc 継続とは Schemeでは継続を手続き…

Schemeの紹介と内包表記マクロ

LispとS式 SchemeやCommon LispのようなLisp系言語の強みは強力なマクロ機能にある。LispではプログラムはS式と呼ばれる形式で記述され、それは、Lispがデータとして扱うリストと全く同じ構造を持っている。そのため、LispがデータとしてLispのプログラムを…

vim-plugでSwiftとRustのプラグインを導入

Vim

VimにSwiftとRustのシンタックスカラーリングが欲しかったのでvim-plugでプラグインをインストールしてみた。Vimのプラグインマネージャは色々つくられているけれど、vim-plugはファイル1つで導入でき、記法もシンプルで軽いようです。GitHub - junegunn/vim…