blog.ryota-ka.me

Cycle.js を JSX で書く

Keywords:

Cycle.js と DOM Driver で Web アプリケーションを書く際に,sink に流す仮想 DOM を JSX で記述したい.公式を読むと普通にやり方が書いてあったが,ググって解決しようとしていると,古い手順に当たってしまい,少し引っかかってしまった.加えて,「最近のフロントエンドのエコシステムはこういう感じなのか」と思うところもあったので,同じような立場の人のために記録を残しておくことにする.なお,同じ轍を踏まぬよう,読者諸賢におかれましては,あくまで2017年1月30日現在の情報であることにご注意願いたい.

以下では,Cycle.js (w/ xstream) でウェブアプリケーションを構築する.また,アセットのバンドルには Webpack を用い,babel-loader を通じて ES2015+ および JSX のトランスパイルを行うこととする.

なお,今回のプロジェクトは GItHub 上で公開しているので参考にされたい.

続きを読む

Vim script でジェネレータを作ったり、遅延評価してみる

この記事は CAMPHOR- Advent Calendar 2016 8日目の記事です.

はじめに#

日本時間の2016年9月12日に,Vim 8.0 がリリースされた.Vim 7.4 のリリースからはおよそ3年振り,Vim 7.0 からは実におよそ10年振りのヴァージョンアップだそうだ.Vim 8.0 では様々な新機能が追加されたが,中でも Vim script にラムダ式*1が追加されたのには目を引くものがあった.

ラムダ式の登場により,標準の map() 関数や filter() 関数の使い勝手が大幅に改善されたが,これらで遊んでいるうちに,似た操作をリストだけではなくイテレータに対して適用したいという欲求が自然と生じてきた.しかしながら,Vim script にはリストはあれど,イテレータなどというものは存在するはずもないので,今回自前で実装する運びとなった.

本稿では,まず初めに,ECMAScript 2015 のインタフェースに似た*2,すなわち,next を呼ぶと { value: 42, done: false } という形式に近い値が返ってくるイテレータを Vim script で実装する.次に,このイテレータを返す関数,すなわちジェネレータを定義する.その後,イテレータを拡張し,mapfilter などのよく知られたメソッドを定義することで,種々の操作を簡便に行えるようにする.

これまでの流れ#

続きを読む

Perl 6 でジェネレータを作ったり、遅延評価してみる

この記事は CAMPHOR- Advent Calendar 2015 30日目の記事です.

はじめに#

今月2015年12月は,12月3日の PHP 7 のリリースに始まり,クリスマスには Ruby 2.3 並びに Perl 6 のリリースが相次いだため,往年のスクリプト言語たちにとっては華々しいひと月となった.調べてみたところ,PHP 5.0.0 のリリースは2004年1月,Perl 5.000 のリリースは1994年10月だったそうなので,やはり大型のリリースが相次いだのだなという気分になる.

というわけでこの際なので,最近ではもはや CAMPHOR- の伝統芸能となりつつある,「ジェネレーターを作ったり、遅延評価してみる」シリーズを Perl 6 で書いてみることにした.ちなみに筆者の Perl 歴は1日である.

続きを読む

Rust でジェネレータを作ったり,遅延評価してみる

続きを読む
次のページ