tl;dr: 実装したけど限定的にしかうまく動かなかった。PerlのScope::Guardについて既に良く知っている人は、最後の節まで飛ばしてもよい。 Server::Starter読んでた サーバプロセスを起動するツールであるServer::Starterの内部がどうなっているのか知りたくなってきたので、コードリーディングをやることにした。プロセスを扱うツールなだけあって、システムコールやシグナルを活用する本場のUNIXプログラミングを目の当たりにし、普段は見ない語彙がたくさん出てきてたじろいでしまった。たじろぎつつもコードを読み進めていると、ちょっと不思議なコードを見付けた。それは[Guard](https://github.com/kazuho/p5-Server-Starter/blob/master/lib/Server/Starter/Guard.pmというクラスで、ちょっと
Find solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. This book covers areas as diverse as web programming, databases, graphical user interfaces, integration with other programming languages, multi-threading, and mobile devices as well as debugging techniques and optimization, to name just a few. Written by an author wh
ANSI Common Lisp入門 イントロダクション 構文 評価とコンパイル 型とクラス データと制御フロー 繰り返し オブジェクト 構造体 コンディション シンボル パッケージ 数 文字 リスト 配列 文字列 シーケンス ハッシュテーブル ファイルネーム ファイル ストリーム 出力(format関数) 入力 システムの構築(ASDF) 周辺分野 Common Lisp ライブラリ入門 汎用系ユーティリティ Alexandria: 汎用定番ユーティリティ データと制御フロー 定義と束縛 マクロの記述 関数 数 シンボル リスト 配列 シーケンス ハッシュテーブル IO(入力・出力) anaphora: itによる前方参照マクロ集 let-plus: 汎用束縛マクロ optima: 高速マッチングライブラリ iterate: 拡張可能でLispらしいループマクロ CL-FAD: ファイル
Lisp Advent Calendar 2016参加記事 ここ数年ディープラーニングの出現をきっかけにAIが再び盛り上がっているので、いよいよLispの復権があるかと思いきや、ないので(泣)、多少なりともLispに興味を持ってもらえるように、LispとAIの関係について私見を述べておこうと思う。Lispといっても色々あるが、この記事では主にCommon Lispの話になる。 Lispというとどうしても過去の記号処理的AIと結びつけられてしまい、機械学習を駆使するような現代のAIでは役に立たないように思われがちなのだが、これは大体誤解である。少なくともCommon Lispは現代的なAI開発に適した特徴を備えている。まず、AI実装のためのプログラミング言語に必要とされる特徴は何なのかを明らかにするために、AIの歴史から考えてみたい。 AIの歴史 初期の記号処理的AI(以降は記号AIと呼ぶ)
(defparameter *app* (make-instance '<app>)) @route GET "/" (defun index () (render #P"index.tmpl")) Common Lisp, the most powerful language Common Lisp is the standardized most powerful language with high-performance implementations in the world. It has lexical closures, multi-dispatch object system called CLOS, the metaobject protocol and macros. As Caveman2 is written in portable Common Lisp, yo
今月の初めに弊社はてなで開発合宿を行いました。2泊3日の合宿の中でチームを組み、テーマを決めて開発をし、最後に各チームがプレゼンをする、というものです。成果物は今後のサービス開発に生かされます。 僕のチームはバックエンドがCommon Lisp、フロントエンドがCoffeeScriptで、お互いが独立していてAPIでのみ通信する設計のWebアプリケーションを作りました。僕とhitode909とswimy1113の3人の最小チームでしたが、最後のプレゼン投票で優勝できました。 ↓ 優勝したときの図。 東北で開発合宿を実施しました - はてな広報ブログ 左の灰色のはてなパーカーを着てるのが僕です。 Common Lispで書かれたアプリケーションが社内1位ってのはかなり夢があります。 合宿が終わってからも継続して開発を続けており、そろそろ数週間が経ちました。ので、この辺りでCommon Lis
はい、また思いつき投稿です。 経緯を知らない方のためにもう一度。 発表のためにAAAI-16に来ています。知らない人も多いかと思いますが、IJCAIとならび、AIの国際学会で最も難関と言われる学会です。個人的には自分もA*の改善論文でPaper Award 密かに狙っていたのですが、Bidirectional Search 論文に取られてしまいました。 今日は、幸運にも MIT / CSAIL の Brian Williams 先生とお話することが出来ました。 (100kgを超してそうな巨体です・・・でもイケメン) この先生は、かの有名な宇宙探査機 NASA Deep Space 1 にCommon Lispで作ったシステムを載せ、成功に導いた先生です。 Common Lisp のリアルタイムコンパイル機能のおかげで、運用中に発覚したバグを(たしか木星を過ぎたあたりで) REPLにログイン
いい加減ChatOpsにも手を付けたいなぁ、と思って、試しに家庭内SlackにHubotを導入してみました。 HubotはGitHub社製のチャットボットフレームワークです。CoffeeScriptで書かれていてNode.jsで動きます。挙動を追加するにはCoffeeScriptでスクリプトを書きます。 これを利用して、チャットというインターフェイスを使って様々な日常タスクを処理させることができます。最近の流行りでは、hubot deployなどと唱えるとチャットからサーバのデプロイをしたりできるようです。 今年もChatOps Advent Calendarでチャットボットを使ったテクニックが投稿されているようです。 ChatOps Advent Calendar 2015 - Qiita さて、導入したのはいいのですが、CoffeeScriptを書くのがどうにもダルい。JavaScri
Clasp 0.4 -- Lisp Over LLVM -- Generates Code 200x Faster Written by Michael Larabel in LLVM on 23 November 2015 at 07:49 AM EST. 17 Comments Clasp is a Common Lisp compiler based on LLVM that also provides seamless interoperation with C++ libraries. Clasp 0.4 has been released with some big improvements. Clasp 0.4 reportedly is capable of generating "200x faster code than previously" while having
κeenです。最近のCommon Lispのパッケージ管理はql:quickloadしか知らないという方も多いのではないでしょうか。しかしそれだけでは機能が足りないこともあります。Common Lispには様々な管理システムがあるので整理しましょう。 provide, require 同じファイルを読み込まないための原始的なシステムです。Common Lispの標準の機能です。(require 'foo)がファイルをロードし、ロードされたファイル内で(provide 'foo)しておくと2回目以降の(require 'foo')はファイルを読まずにすぐさま返ります。 ここで問題なのがrequireがどこのファイルを捜しにいくかは処理系依存なところですね。なので生のrequireは使えないと思っておいた方が良いでしょう。 ASDF 3 Another System Definition Fa
色々ありますが、 言語仕様/マニュアル Common Lisp HyperSpec ANSI Common Lisp (Franz) Common Lisp Quick Reference Common Lispのformat関数 Common Lispマニュアルまとめ ライブラリドキュメント Quickdocs CLiki クックブック/解説 The Common Lisp Cookbook Common LISP users jp 逆引きCommon Lisp stackoverflow: common-lisp ja.stackoverflow: common-lisp コード例 Rosetta Code: Common Lisp その他参考文献 Common Lisp the Language, 2nd Edition CLtL2は古いので参考程度に こんなものでしょう。 ANSI
深町さんのブログで日本語でCommon Lispの質問をする方法が載ってましたが質問じゃなくて単に情報を得たい、勉強をしたいという場合が書かれてなかったので勝手に補遺。 処理系選び 処理系:選び方の目安 - Common LISP users jpや Common Lisp 処理系 - 紫藤のWikiが参考になるかと思います。 開発環境構築 Modern Common Lispあたりですかね。著者がちょっと古くなってきたので更新するって言ってました。 処理系のインストールなら*nix環境で使える拙作のCIMもあります。解説はこちら。 入門 Web 私の一番のおすすめはM.HiroiさんのWebページです。一応Common Lispではなくxyzzyですがここで紹介されている内容であればCommon Lispにも共通します。 M.Hiroi’s Home Page / xyzzy Lisp
Web scraping is the process of collecting data from websites. There is a lot of data publically accessible on the Internet and sometimes you want to do something with that data programmatically. Instead of manually copying and pasting stuff from websites to some sort of spreadsheet, you might as well write a script that does it for you. The process depends on the way the data is embedded into a ta
Tail Call Optimisation in Common Lisp Implementations While the Common Lisp standard does not require implementations to eliminate tail calls, some do—thereby allowing a more functional programming style. Especially in the prototyping phase, it can be useful to know where this functional style can be employed and where it's likely to cause stack overflow. Since I couldn't find a single document ou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く