Ryota Kameokaryota-ka
リードエンジニア
京都大学経済学部在学中より、京都のIT系学生コミュニティCAMPHOR-で活動する傍ら、複数のスタートアップの立ち上げに関わり、フロントエンドからインフラストラクチャまでの開発・運用をおおよそ一人で支える。2017年5月より現職。好きなエディタはNeovim。好きな言語はHaskell。
...
@cycle/react を触ってみる
数日前,@staltz 氏から Cycle React のリリースがアナウンスされた.@cycle/react を含む一連のライブラリ群は,React component を Cycle.js の中で用いることを可能にし,Cycle.js の component を React の中で用いることを可能にする.
...
代数的データ型と初等代数学
「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.
...
Coyoneda って…… お前 functor がデータ構造になっただけやんけ!!
operational (あるいは freer) と呼ばれているものの説明として, a) Coyoneda を使うと,kind が * -> * であるような任意の型から functor を作り出せる 任意の型 f :: * -> * について Coyoneda f は Functor のインスタンスになる
...
Template Haskell でいい感じに時間の長さを書けるライブラリ duration を作った
Template Haskell を使って,時間の長さをいい感じに(人間が読みやすい形で)記述できるライブラリを作った.
...
Maybe と IO を一緒に使いたくなったら
たまには初学者向けにライトな話題を.対象読者 すごいH本を12章か13章ぐらいまで読んだ do 構文を使って IO などの処理が書ける Haskell のプログラムはなんとなく書けるが,あまり綺麗に書けている気がしない
...
TypeFamilyDependencies の実用的な例を考える
FunctionalDependencies という GHC 言語拡張がある.Haskell Wiki によると,Functional dependencies are used to constrain the parameters of type classes. と書かれているが,これはどういうことか.
...
TemplateHaskellでコード中にJSONを埋め込んだりコンパイル時にファイルから型安全に読み込んだりする
前回よりはもう少し実用的な例を.Template Haskell を使って,Haskell のコード中に JSON をそのまま埋め込むことができるようにする.また,あらかじめ用意しておいた JSON ファイルをコンパイル時に読み込み,指定したデータ型の値にする.
...
Template Haskell でコンパイル時 FizzBuzz
数ヶ月前に Twitter で,コンパイル時に FizzBuzz を計算して,実行時には計算された文字列を出力をするだけ,というコンパイル時 FizzBuzz を何かの言語でやっているのを見かけた.元ネタは江添さんがC++で書いたものらしい.インスピレーションを受けて,Haskell で書いてはみたが,簡単すぎて全然おもしろくなくなってしまった.
...
Type-level TypeScript
この記事は CAMPHOR- Advent Calendar 2017 の21日目の記事です.@ryota-ka です.普段は HERP という会社でリードエンジニアとして働いています.一昨日19日にサービスのティザーサイトを公開したばかりなので見てください.
...
開発効率向上 tips vol.1 -ターミナル・シェル編-
最近弊社でも大学生のエンジニアインターンが増えてきて,彼らの成長のために,開発にあたっての知見を効率的に共有する手段を色々と模索している.こういった知見は再利用性も高く,社内に閉じている必要もまったくないので,こうしてブログに書き溜めていくことにしてみようかと思う.第一弾として,端末エミュレータ上でのオペレーションの効率化について記す.
...
Terraform の module で2重ループしたい ― GitHub の issue labels を例に
実現したいこと Terraform の GitHub provider を用いて,issues および pull requests のラベルを管理したい.その際に,いくつかのラベルをひとまとめにしておき,複数のリポジトリが同じラベル群を持つようにしたい.また,module はネストすることもできるが,複雑になるので避けたい.