タグ

ブックマーク / rhysd.hatenablog.com (3)

  • Vim を WebAssembly に移植した - はやくプログラムになりたい

    久々のブログです. 6月ぐらいにWebAssembly の仕様をざっくり読んだので,なんか WebAssembly でやりたいなと思って,VimWebAssembly に移植してブラウザで動くようにしてみました,という話です. github.com 多分実物を見ていただくのが一番早いので,下記のリンクにアクセスしてみてください. デモページはこちら(下記の注意事項を先にお読みください) 注意 デスクトップ版の Chrome か Firefox か Safari か Edge を使ってください.どうやら macOS では Safari が一番動きが良いです. デモページは全部で1MBほどのリソースを fetch します.モバイルネットワークなどからアクセスする場合はお気をつけください. keydown でキー入力を取っているので,キー入力を横取りするブラウザ拡張などが有効になっていると

    Vim を WebAssembly に移植した - はやくプログラムになりたい
    todesking
    todesking 2018/07/09
  • OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい

    言語実装 Advent Calendar 2017 の16日目の記事です. GoCaml という OCaml のサブセットな言語を実装していて,多相型の型推論を実装するために論文を読んだり OCaml の実装をちょっと追ったりしていたので,その知識を整理する意味でこのエントリを書いています. この記事では OCaml の型推論器のベースになっている「レベルベースの多相型型推論アルゴリズム」について概略を直感的に説明しようと思います. 理論的になぜこのアルゴリズムで正しく動作するのかについてはこの記事で概要を把握した上で論文 のほうを読んでいただければ理解が速いと思います. また,この記事では最もシンプルな単相型のHM型推論については知っている前提で書きます. ご存知でない場合は, 住井先生の MinCaml の型推論実装の解説 五十嵐先生の型推論の解説 20日目の@uint256_t さん

    OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
    todesking
    todesking 2018/03/24
  • Vim script で ES6 Promise 実装した - はやくプログラムになりたい

    Vim Advent Calendar 2017 の19日目の記事です.Vim script で ES6 の Promise を実装した話を書きます. もし Vim script が分からなくても,最後の章「Promise の実装の詳細」は Vim script とは独立した内容になっているので,Promise の実装に興味があれば読んでみてください. TL;DR 実装はこちら Promise とは ES6 (ES2015) で ECMAScript に標準に導入された非同期処理を扱うためのライブラリです. これを使うことにより,「未来のある時点でいずれ値を持つ」値を扱うことができ,ES5 まではコールバックで扱う必要があった非同期処理を逐次処理的な書き方で書きつつ,エラーも一貫した方法で扱えます. 例えば,ネットワークのどこかから取ってきたデータをファイルに保存する処理は,ネットワークか

    Vim script で ES6 Promise 実装した - はやくプログラムになりたい
    todesking
    todesking 2017/12/19
  • 1