タグ

ブックマーク / athos.hatenablog.com (10)

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

    7/27に開かれたLisp Meetup #30で「Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの」というタイトルで話してきました。 Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの from sohta 内容としては、去年のShibuya.lispのテクニカルトークで話した内容を重点をズラして焼き直したものです。終わった後にいくつか意見をいただきましたが、絶対数は多くないのでどう受け止められているのかはちょっと気になるところです。 「これからのLispに必要なもの」とタイトルにはあるものの、具体的に「これが必要だ」と言えてないのが残念な感じですが。。。この発表でいいたかったのは、「LispコードをCASEツールで解析できる対象にしていきませんか」という提案です。 ICSE勉強会なんかの話を聞いていると、他の言語(特にJ

    「Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの」を発表しました - Homoiconic Days
  • tools.analyzerとtools.emitterを組み合わせてキミだけの最強Clojure処理系を作ろう - Homoiconic Days

    (このエントリは、Clojure Advent Calendar 2014 21日目、および Clojure Contrib Library Advent Calendar 2013 24日目の記事です。) 今回はClojureのcontribライブラリであるtools.analyzerとtools.emitterを使ってカスタマイズしたClojure処理系を作ってみます。 tools.analyzer/tools.emitterとは tools.analyzerとtools.emitterはClojureのセルフホスティングコンパイラ、つまりClojureで書かれたClojureコンパイラを構成するライブラリ群です。以前からCinC(Clojure in Clojure)という名前だけがあったプロジェクトが、ようやく具体的にcontribライブラリという形で開発が進められているという状況

    tools.analyzerとtools.emitterを組み合わせてキミだけの最強Clojure処理系を作ろう - Homoiconic Days
    pochi-mk
    pochi-mk 2014/12/22
    この年末年始にまじめに読んでみよう(t.a とか t.e とか Clojure コンパイラ本体とか)。
  • 女子力botをもっとイケてるClojureっぽく - Homoiconic Days

    (このエントリは、しょぼちむアドベントカレンダー 15日目の記事です) はじめに Clojureアイドルことしょぼちむさんが先日開催されたClojure夜会で、Clojureで書かれた女子力botなるものについて発表していました。Clojure歴3週間とのことでしたが、そうとは思えないほどよく書けています。しかし、Clojureのidiomaticな書き方の中には、時間を書けて慣れていかないとなかなかすんなり書くことが難しいものもあります。 そこで、今回は女子力botを題材によりClojureっぽいイケてる書き方を紹介します。 書き換えてみよう 今回ピックアップする項目は以下のとおりです。 clojure-contribは使わないようにしよう シーケンス処理に持ち込もう *-in関数を使おう 状態をloopで持ち回そう 参照を公開しないようにしよう (ここで取り上げていないすべての変更を含

    女子力botをもっとイケてるClojureっぽく - Homoiconic Days
    pochi-mk
    pochi-mk 2014/12/16
    丁寧で読みやすい解説、自分もこんな文章書けるようにならんといかんなぁ。
  • Clojure夜会でLT発表してきた - Homoiconic Days

    もう1週間以上経ってしまったけど、10/10に開かれたClojure夜会に参加してきた。 Clojure 夜会(Evening Party) - Clojure大好き! | Doorkeeper 平日の夜から(しかも東京で)のイベントだったので最初は参加は難しいなぁと思っていたのだけど、休みがギリギリとれたので4日前くらいになって急遽参加することにした。 発表について せっかくわざわざ東京まで行くのにただ話を聞いているだけというのももったいないなと思い、LT枠も余っている様子だったのでそこから急造でネタごしらえ。自分が最近やっていることでネタになりそうなおもしろい話が特になかったので、去年くらいからちょくちょく海外のClojureコミュニティの人たちのブログで話に挙がるStuart Sierra*1が提案するClojureワークフローについて紹介することにした。 当日の発表資料はこちら。

    Clojure夜会でLT発表してきた - Homoiconic Days
  • core.matchを使って算術式インタプリタを実装する - Homoiconic Days

    (このエントリは Clojure Contrib Library Advent Calendar 8日目の記事です。) はじめに 今回のネタは,Clojureのパターンマッチライブラリであるcore.matchです。パターンマッチは,Lispのマクロの応用的な例としてなどのネタで取り上げられることが多いですが,データ構造によって処理を分岐したり,複雑なデータの中から一部を取り出す場合などに実際に使える便利な機能です。 今回はこのcore.matchを使って型システム入門の3,4章に出てくる算術式のインタプリタを実装します。 なお,core.matchを使用する場合には,Leiningenのproject.cljに以下を追加する必要があります。2013年12月現在の最新版は0.2.0-rc6です。 [org.clojure/core.match "0.2.0-rc6"] パターンマッチ c

    core.matchを使って算術式インタプリタを実装する - Homoiconic Days
  • data.jsonでJSONの読み書き - Homoiconic Days

    (このエントリは Clojure Contrib Library Advent Calendar 3日目の記事です。) はじめに 3日目の今日はdata.jsonについてです。 data.jsonは名前が示すとおり,JSON形式の読み書きをするために使います。以前はclojure.contrib.jsonという名前でした。 ひと昔前は,ClojureでJSONというと,clojure-jsonやclj-json,cheshireなどいろいろなライブラリが競合していました。現在では,data.jsonがデファクトスタンダード的な位置にあり,Web関連のアプリケーションを中心に広く使われています。初日の記事の Clojure Contrib ライブラリとは に記載したランキングを見ても,data.jsonがよく使われていることが分かります。 このエントリでは,data.jsonの使い方を説明し

    data.jsonでJSONの読み書き - Homoiconic Days
    pochi-mk
    pochi-mk 2013/12/04
    JSONとClojure。実はとっても相性が良いと思ってます。
  • CodeIQのRestricted Words問題をClojureで - Homoiconic Days

    CodeIQで次のような問題(通称「Restricted Words」問題)が出されていました。 標準出力に Hello World と出力するプログラムを作成して下さい。 ただし、数値、文字及び文字列リテラルを解答に含めることはできません。 Perlのqqやqw、Rubyの%Q、%q、%wなども避けたほうが評価が高くなります。 言語仕様をフル活用して下さい! ログイン│CodeIQ 9/19に解答期限が切れて,自分の解答を公開することができるようになったので, Clojureで書いて提出した解答について適当に紹介してみようと思います。 Clojureで解答を考えるにあたって,以下の方針を立てました: シンボルやキーワード,正規表現などのリテラルも使用しない 文字列を使えるのとほとんど変わらず,チートっぽい マクロを使用しない シンボルが使いたい放題になるのでマクロも使わない 「文字コード

    CodeIQのRestricted Words問題をClojureで - Homoiconic Days
    pochi-mk
    pochi-mk 2013/09/26
    Exception を使うなんて、思いつかなかった。面白い。
  • Clojureコンパイラの型推論器をとりだしてみる - Homoiconic Days

    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 inference)は,Clojureの説明でたまに名前だけは出てくるものの,その実態についての説明にはほとんどお目にかかったことがない。そこで今回は,Clojureの型推論の機能をClojureから触れるようにして遊んでみよう。 Clojureになぜ型推論が必要か まずはじめに注意しておかないといけないのは,Clojureの型推論はMLやHaskellなどの静的

    Clojureコンパイラの型推論器をとりだしてみる - Homoiconic Days
    pochi-mk
    pochi-mk 2013/08/06
    Clojure の type hint ってこういう動きをしていたんですね。勉強になりました。
  • Clojure(ある意味)基礎文法最速マスター - Homoiconic Days

    (このエントリはLisp Advent Calendar 2012 1日目の記事です。) はじめに 2年ほど前に、「◯◯言語基礎文法最速マスター」という、それぞれの言語の基的な文法を説明したブログ記事を書くのが大流行した時期がありました。その流行り具合は、まとめ記事にまとめられた記事の数を見てもうかがい知ることができると思います(たとえば、こことか→プログラミング基礎文法最速マスターまとめ - ネットサービス研究室)。 それで、これだけたくさんの言語がカバーされてれば当然Clojureもあるだろうと思ってググってみましたが、意外にも2年経った今も「Clojure基礎文法最速マスター」はないみたいです。で、僕は入門記事みたいなのは書くのが苦手なのでやらないんですが、「Clojureの基礎文法とは何ぞや」ということを改めて考えてみました。 で、「基礎」をfoundationと考えれば、コンパ

    Clojure(ある意味)基礎文法最速マスター - Homoiconic Days
    pochi-mk
    pochi-mk 2012/12/02
    タイトルは釣りっぽい(失礼w)けど、わかりやすい、良い記事だと思いました。参考になります!!!
  • 逆FizzBuzz問題をTrieでトライ - Homoiconic Days

    なにやら巷で逆FizzBuzz(Inverse FizzBuzz)問題というのが流行ってるらしい。 逆FizzBuzz問題 (Inverse FizzBuzz) - とC#について書くmatarilloの雑記 F#で逆FizzBuzz問題 - Bug Catharsis わぁいInverse Fizzbuzz解けたよー - 這い寄るゆろよろ・アンド・ライジングフォース日記 Inverse Fizzbuzz - scalaとか・・・ Shipper: すみませんが問題をもう一度教えてもらえますか? Google: あるリストが与えられたときに、FizzBuzzを実行するとそのリストを出力するような最短の連続数列を求めよ。 逆FizzBuzz問題 (Inverse FizzBuzz) - とC#について書くmatarilloの雑記 「ここまで短く書けるよ!」という向きは他でもいろいろとやら

    逆FizzBuzz問題をTrieでトライ - Homoiconic Days
  • 1