Slime と Swank-js でサクサク JavaScript 開発

この記事は JavaScript2 Advent Calendar 2018 の 25 日目の記事として書かれました. 今回は,Emacs エディタからリモート上の Node やブラウザに接続して,エディタの編集画面から直接プログラムをホットスワップする開発方法を紹介します.Lisp 系言語の開発者にはお馴染みの Slime を用いた開発です.JavaScript 用の Swank サーバ(swank-js)は随分前から開発されていましたが,長い間更新が滞り最新の Emacs 環境では使うことができませんでした.今回,最新の Emacs 環境で使えるように修正したので,導入方法と使い方を紹介します. .... »

ファンタジー・ランドの保護地区をゆく Part 2 --- Maybe モナド

この記事は JavaScript2 Advent Calendar 2018 の 19 日目の記事として書かれました.コードは GitHub にまとめてあります. Fantasy Land を実装した Sanctuary.js の使い方サーベイの第 2 弾.今回は null 対策として Maybe モナドの使い方を見ていきましょう.Functor を扱った Part 1 は こちら. .... »

ファンタジー・ランドの保護地区をゆく Part 1 --- Functor

この記事は JavaScript2 Advent Calendar 2018 の 4 日目の記事として書かれました.コードは GitHub にまとめてあります. 最近,JavaScript の関数型プログラミングにはまっているので,Fantasy Land を実装した Sanctuary.js の使い方をサーベイして行きたいと思います.今回は基本中の基本,Functor から. .... »

ltk と Tk との接続

管理者権限の無いマシンで Common Lisp の GUI 開発をする場合,GUI ツールキットをローカル・ディレクトリにインストールせざるを得ない.管理者権限の無いマシンで ltk を使う必要に迫られたので,Lisp コードからどのように Tk を呼び出しているのか調べてみた. .... »

Lisp のストリームあれこれ

peek-char の便利な機能 ストリームから文字を peek する際,peek-char の第 1 引数に t を指定すると空白文字をスキップしてくれる.次に read-char を実行すると,スキップ後の 1 文字を返す. .... »

Lisp の Sequence 型のまとめ

Common Lisp のソート関数や探索関数は,引数にシーケンス(SEQUENCE)型のオブジェクトを取る.シーケンス型はベクトル(VECTOR)型とリスト(LIST)型の抽象型なので,ベクトルとリストのいずれもそれら関数に渡すことが出来る.では配列(ARRAY型)を引数に渡したい場合はどうか? Common Lisp ではベクトルは 1 次元配列と同じなので,シーケンスを引数に取る関数に 1 次元配列を渡すのは問題ない. Common Lisp における配列とベク .... »

Roswell 環境下でのローカル・プロジェクト管理入門

この記事は Lisp Advent Calendar 2017 の4日目の記事として書かれました.コメント,質問等は @waterloo_jp まで. 「 Lisp のパッケージ管理入門.Quicklisp,ASDF,Roswell の違いなど 」では,Quicklisp,ASDF,Roswell の違いを説明し,Roswell の導入部分を解説しました.ここでは,もう少し踏み込んで,自分で開発するプロジェクト(ローカル・プロジェクト)を Roswell の環境下で管理する方法を説明します.本稿の最後で .... »

アセンブリを始めてみる

マイコンをもっと極めたい.その一心でひたすら低水準(マシン寄り)の勉強をしていると,結局アセンブリやリンカスクリプトの勉強に辿り着く. 坂井氏の「12ステップで作る組込みOS自作入門」をやってH8のアセンブリを勉強するか,それとも,もっと基礎から書かれたCASLの解説書の方が良いか.CASL IIの本ではKindleで読める「アセンブリ言語スタートブック」が良さそうだ.でもシュミレーターで動く言語じゃ .... »