「Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの」を発表しました

7/27に開かれたLisp Meetup #30で「Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの」というタイトルで話してきました。 Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの from sohta 内容としては、去…

"Contributing to Clojure"の翻訳記事を公開しました

【翻訳】Clojureにコントリビュートするには - Qiita Contributing to ClojureはClojureにコントリビュートする際に必要な手続きやワークフローについてAlex Millerが説明した記事です。元記事自体は、Clojureの開発に関する広範な情報を提供してくれていて…

ニャンパス株式会社に転職しました

先月で前職を辞め、今週からニャンパスで働き始めたので報告します。 前職 前職では、組込み業界で働いてました。とはいっても、組込みソフトウェアの開発自体には携わってなくて、主に組込みソフトウェア開発のための開発環境の開発をやってました。 詳しく…

tools.analyzerとtools.emitterを組み合わせてキミだけの最強Clojure処理系を作ろう

(このエントリは、Clojure Advent Calendar 2014 21日目、および Clojure Contrib Library Advent Calendar 2013 24日目の記事です。)今回はClojureのcontribライブラリであるtools.analyzerとtools.emitterを使ってカスタマイズしたClojure処理系を作ってみ…

女子力botをもっとイケてるClojureっぽく

(このエントリは、しょぼちむアドベントカレンダー 15日目の記事です) はじめに Clojureアイドルことしょぼちむさんが先日開催されたClojure夜会で、Clojureで書かれた女子力botなるものについて発表していました。Clojure歴3週間とのことでしたが、そうとは…

Clojure夜会でLT発表してきた

もう1週間以上経ってしまったけど、10/10に開かれたClojure夜会に参加してきた。 Clojure 夜会(Evening Party) - Clojure大好き! | Doorkeeper 平日の夜から(しかも東京で)のイベントだったので最初は参加は難しいなぁと思っていたのだけど、休みがギリギリ…

CodeIQ プログラミング言語☆総選挙の問題をClojureで

先月、CodeIQでプログラミング言語総選挙なるものをやってました。CodeIQ プログラミング言語★総選挙|CodeIQ内容はおおむね、各人が好きな言語へ投票して言語ごとの得票数を競うものでした。まず予備選挙をやって、上位の8言語だけが本選挙に勝ち上がれると…

tools.macroを使ってLet Over Lambdaのパンドリックマクロを実装する

(このエントリは Clojure Contrib Library Advent Calendar 18日目の記事です。) はじめに 今回のネタはtools.macroです。 tools.macroは,ライブラリのREADMEによれば「マクロを書くためのツール」という位置づけで,現在提供している主要な機能はmacrolet…

data.priority-mapを使ってダイクストラ法で迷路を解く

(このエントリは Clojure Contrib Library Advent Calendar 14日目の記事です。) はじめに 今回はdata.priority-mapについてです。以前はclojure.contrib.priority-mapと呼ばれていました。 data.priority-mapは優先度つきマップ(priority map)の実装を提供…

data.finger-tree: フィンガーツリー

(このエントリは Clojure Contrib Library Advent Calendar 13日目の記事です。) はじめに 今回はdata.finger-treeについてです。data.finger-treeは名前が示すとおり,フィンガーツリーの実装を提供します。Wikipediaによれば,フィンガーツリーは以下のよ…

core.rrb-vector: 新しいベクタの実装

(このエントリは,Clojure Contrib Library Advent Calendar 12日目の記事です。) はじめに 今回のネタはcore.rrb-vectorです。core.rrb-vectorは2013年1月にContribライブラリに入った比較的新しいライブラリです。 core.rrb-vectorが提供するのは,新しい…

tools.loggingを使ってSLF4J+Logbackでログをとる

(このエントリは, Clojure Contrib Library Advent Calendar 9日目の記事です。) 概要 今日紹介するライブラリはtools.loggingです。tools.loggingは,Javaで実装されたいくつかのロギングライブラリを,共通したインタフェースでClojureから使えるようにす…

core.matchを使って算術式インタプリタを実装する

(このエントリは Clojure Contrib Library Advent Calendar 8日目の記事です。) はじめに 今回のネタは,Clojureのパターンマッチライブラリであるcore.matchです。パターンマッチは,Lispのマクロの応用的な例として本などのネタで取り上げられることが多い…

tools.traceで実行トレースをとる

(このエントリは Clojure Contrib Library Advent Calendar 7日目の記事です。) 概要 今回はtools.traceについてです。tools.traceは実行トレースをとるのに便利な関数/マクロを提供するライブラリです。標準でデバッグ機能が弱いClojure上での開発で,シン…

進捗報告

(このエントリは 進捗Advent Calendar 6日目の記事です) 進捗どうですか? ダメです,とまではいいませんが,良いとも言い切れません。ギリギリの自転車操業な感じです。 Clojure Contrib Library Advent Calendar 元凶はなんといっても Clojure Contrib Lib…

data.jsonでJSONの読み書き

(このエントリは Clojure Contrib Library Advent Calendar 3日目の記事です。) はじめに 3日目の今日はdata.jsonについてです。 data.jsonは名前が示すとおり,JSON形式の読み書きをするために使います。以前はclojure.contrib.jsonという名前でした。ひと…

Clojure Contrib ライブラリとは

今年も残すところ1ヶ月となり,恒例のアドベントカレンダーの季節がやってきました。このエントリは,Clojure Contrib Library Advent Calendar 2013 の第1日目の記事です。今回は,Contribライブラリの概要について説明します。 contribライブラリとは そも…

CodeIQのRestricted Words問題をClojureで

CodeIQで次のような問題(通称「Restricted Words」問題)が出されていました。 標準出力に Hello World と出力するプログラムを作成して下さい。ただし、数値、文字及び文字列リテラルを解答に含めることはできません。 Perlのqqやqw、Rubyの%Q、%q、%wなども…

Clojureコンパイラの型推論器をとりだしてみる

clojure.orgには,Clojureについて次のような説明がある。 Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. http://clojure.org/ この型推論(type…

MLのlet多相とか値制限とかよく分からなかったので調べてみた

世間はもうすぐ予定されているTAPLの日本語版の発刊に色めき立ってますね。関数型都市と呼ばれていた(る?)なごやでは、いいかげん動的型の言語ばっかやってられない雰囲気をヒシヒシと感じてるので、ぼちぼちと静的型付言語の勉強を進めています。 で、この…

gorubyライクな短縮形をClojureで

(このエントリはLisp Advent Calendar 2012 8日目の記事です。) gorubyとは gorubyはRubyに標準でついてくる、ゴルフ用のRuby処理系です。ゴルフ用というだけあって、普通のRubyに追加でゴルフに都合のいい機能をいくつかもっています。そのひとつに、「メソ…

Clojure(ある意味)基礎文法最速マスター

(このエントリはLisp Advent Calendar 2012 1日目の記事です。) はじめに 2年ほど前に、「◯◯言語基礎文法最速マスター」という、それぞれの言語の基本的な文法を説明したブログ記事を書くのが大流行した時期がありました。その流行り具合は、まとめ記事にま…

逆FizzBuzz問題をTrieでトライ

なにやら巷で逆FizzBuzz(Inverse FizzBuzz)問題というのが流行ってるらしい。 逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記 F#で逆FizzBuzz問題 - Bug Catharsis わぁいInverse Fizzbuzz解けたよー - 這い寄るゆろよろ・アンド・…

Clojureでsyntactic closureを使ってhygienic macroを書くためのライブラリを作りました

という話。当初は実現可能性を示すことを目的にしていましたが、それなりに実用できそうな感じになってきたのでライブラリとしてまとめました。 athos/syntactic-closure · GitHub syntactic-closure 0.1.0 - Clojars hygienic macroとは? syntactic closur…

真・自然言語プログラミングの"the"演算子をClojureで

みなさん、明けましておめでとうございます。今年もよろしくお願いします(遅 さて、今回のネタは"the"演算子をClojureで実装してみたという話。"the"演算子といってもCommon Lispのtheではありません。 2年半ほど前に、FLTV(Future Language TV)という未来の…

重箱の隅的Clojureのイケてないところ

この記事はClojure Advent Calendar 2011 4日目の記事です。 Clojureには,シーケンスや組み込みのイミュータブルなコレクション型,STMなどエレガントだといわれる様々な特徴がある。一方で,ときにプログラマを悩ませるような厄介な挙動や不自由さを感じる…

Shibuya.lisp TT #7でLT発表してきました

遅ればせながら,10/22(土)に行われたShibuya.lispの第7回テクニカルトークに参加した報告。いつの間にか1週間も過ぎていましたね(^^; Shibuya.lispテクニカル・トーク#7 : ATND Shibuya.lispのテクニカルトークももう7回目ということですが,東京が遠いのと…

Clojure 内部で使われる中間形式 Expr について分かったこと

最近,暇を見つけてClojureのコンパイラを読んでいる。まだよく分かっていない部分もたくさんあるけれど,今まで読んできた中で分かったこと,特にClojureの内部で使われている "Expr" という中間形式についてまとめておく。 Expr って何? Clojureの内部で…

Nailgun/GroovyServを使ってClojureの起動を高速化する

JVM上で動作する言語(処理系)にはよくある話だけれど,Clojureの起動は遅い。下の結果は手元の環境で実行した場合の例。 $ repeat 5 time java clojure.main -e '(println "Hello, Clojure!")' Hello, Clojure! java clojure.main -e '(println "Hello, Cloj…

「ClojureでJavaクラスのコンストラクタをapplyする」をリフレクションで

元ネタは1年前の記事。 ClojureでJavaクラスのコンストラクタをapplyする - 水底で思うこと 解決方法 -> ClojureでJavaクラスのコンストラクタをapplyする - 地獄の猫日記 ClojureからJavaのコンストラクタを呼ぶ場合, (new Hoge foo bar) または (Hoge.…