タグ

Lispに関するsiroccoのブックマーク (108)

  • Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum

    言語実装 Advent Calendar 2022の1日目の記事として書いた。 Lisp Advent Calendar 2022でも枠が空いていたのでダブル投稿。 プログラミング言語を実装してみたい!と思ったらまずは簡単なLispインタプリタから始めるというのは一つの王道だと思う。 複雑な構文解析は要らず最低限の再帰下降法パーサで手に入る構文木を、そのまま再帰的な関数で実行していくtree walking評価器。メモリ確保もヒープにそのまま置いていって、メモリ解放は実装言語のGCに任せるなりプログラムの終了時までやらなかったり。そんなインタプリタを作る経験から得られるものは非常に大きく、どんなプログラマでも一回は試してみてもいいのではないか?と思っている。(個人的な感想です) そんな簡易Lispを実装してみて沼にハマってしまい、より精緻な言語処理系を作りたいと思ったとする。その時点で:

    Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum
    sirocco
    sirocco 2022/12/02
    "Write Yourself a Scheme in 48 Hours" を写経しながら Scheme を造ると、構文を評価することが何なのかを理解できると思う。 https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours
  • Cより高速なCommon Lispコードを書く - 八発白中

    Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。 “If you can't outperform C in CL, you're too good at C.” — Eric Naggum 最近、Common Lispの非同期Webサーバ「Wookie」を高速化する過程で、ボトルネックになっていたHTTPリクエストのパース部分を高速に処理するライブラリを書きました。 fast-http - A fast HTTP request/response parser for Common Lisp 既存のライブラリ「http-parse」よりも約10倍速く、Cのライブラリ「http-parser」より5%ほど高速です。 追記 (2014/10/26): 最適化をやり直し、現在は「http-parse」よりも約27倍速く、Cの「h

    Cより高速なCommon Lispコードを書く - 八発白中
    sirocco
    sirocco 2014/10/23
  • Lispのカッコは怖くないよ - knjnameのブログ

    最近Lispの連れション仲間を増やしたいので、いろんな初見の人に「Lispって知ってる?」と質問して回っています。 そこそこアンテナのある技術者ならLispというのがプログラミング言語の一派を意味しており、それが主に大量のカッコで構成されていることは知っているようなのですが、なんか拒否反応が多いんですよね。 拒否反応というのが、まあ、だいたい 「カッコが多すぎて気がおかしくなる」 「私の人生は大量のカッコに対応するには短すぎる」 「大学でやったけどカッコ死ね。」 みたいなHTML初心者がタグのネストに敗北したみたいな感想ですね…。 まあ、パッと見てそういいたくなる気持ちは分かるんですが、それ自体がよくあるLispに対する誤解と言わざるを得ないです。 事実、Lispプログラミングは大量のカッコを相手にするのですが、誰もカッコの個数なんて見ていません。 Lispのプログラムの構造を読むときは、

    Lispのカッコは怖くないよ - knjnameのブログ
    sirocco
    sirocco 2014/08/06
    (閉じるカッコは (エディダが (対応を (教えてくれるから (エディダに (まかせればよい))))))
  • 長文日記

    長文日記
    sirocco
    sirocco 2014/01/23
    私はここで学習しました。「もうひとつの Scheme 入門」 http://www.shido.info/lisp/idx_scm.html
  • Common LispによるAI Programming入門 (2013) | Nishida Lab

    Lispは記号の構造的な表現であるS式を操作するインタープリタ方式を基調とするプログラミング言語である.ここでは,思考のツールとしてのCommon Lispを強調した解説を行う.すなわち,関数型プログラミング言語としてのCommon Lispの位置づけはいったん忘れ,人工知能の学習などに頻繁に現れる知的学習と問題解決,より一般的には記号処理を中心としたロジックを再現して,シミュレーションを中心とした理解や発想を支援する実践的なツールとしてCommon Lispを位置付けて,Windows PCを使えるレベルの初学者を想定したAI Programming入門コースを提供する(まだまだ工事中ですが…). — 西田豊明 目次 1. 人工知能について 2. 処理系のインストール 3. gclによるAIプログラミング(超入門) 4. gclによるプログラミングプロジェクト(超入門) 5. gclによ

    sirocco
    sirocco 2013/06/07
    「Common LispによるAI Programming入門 (2013)」
  • Land of Lisp - ぱたへね

    漫画が独特の味を出しているCommon Lispの、Land of Lispを読みました。とても面白かったので紹介します。 の内容 ゲームを作りながら、Common Lispや関数型プログラミングについて学べるです。他の「ゲームで学ぶ・・・」系のと違うのは、既存のゲームをCommon Lispで実装していくので、できあがったゲームがそれなりに面白い事です。ゲームのI/Fは基CUIですが、一部の出力に関してはgraphvizやsvgを使ってグラフィカルに出力されていて面白くなっています。Common Lispの基的な文法以外にも、Functional programmingゲームAI、Webサーバー、Lazy Programmingと扱っているトピックは広いです。 基的なスタンスが「Lispサイコー」なので、そういうのが好きな人も十分楽しめると思います。 ゲームの紹介 いく

    Land of Lisp - ぱたへね
    sirocco
    sirocco 2013/03/11
    やりたいことがいっぱいあるけれど頭が追いつけない・・・Orz "ゲームを作りながら、Common Lispや関数型プログラミングについて学べる本です"
  • Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中

    Quicklispに登録されているCommon Lispライブラリの情報をWebで見られるサイト「Quickdocs.org」を作りました。 http://quickdocs.org/ さくらVPS 1Gで動いてます。この2日で突貫で作ったみたいな感じなのであまりいじめないでください。 機能 とてもシンプルなので、見ていただいたほうがわかりやすいかもしれません。 たとえばClackのプロジェクトページは以下です。 http://quickdocs.org/clack 右上にはWebサイトやリポジトリへのリンクを置きました*1。 文にはREADMEを表示しています。最近はGitHubホストされているライブラリが多いので見慣れていると思いますけどね。 下のほうには.asdに記述されている情報を表示しています。Author, Maintainer と License、および依存ライブラリです

    Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中
    sirocco
    sirocco 2013/02/27
  • (笑) - 書評 - Land of Lisp : 404 Blog Not Found

    2013年02月20日08:30 カテゴリ書評/画評/品評Lightweight Languages (笑) - 書評 - Land of Lisp 出版社より献御礼。 Land of Lisp Conrad Barski / 川合史朗訳 [原著:Land of Lisp] これだ! Lispに足りなかったのは。 書「Land of Lisp」は、Lispの、Lispによる、Lispのための喜劇comedy。これでわかった。 Lispに足りなかったもの、それは、笑いだ。 およそ Computer Science というものを(独学であれ学校であれ)学んだプログラマーで、Lispに一目置かないものは存在しない。いたらそいつはモグリだと謹んで断言していただく。今日日主に使われている電脳言語は、多かれ少なかれLispの薫陶を受けている。JavaScript, Perl, Ruby, Pyth

    (笑) - 書評 - Land of Lisp : 404 Blog Not Found
    sirocco
    sirocco 2013/02/20
    プログラマヒエラルキーの図にHaskellが出てこない・・・Orz Gauche の作者・川合史朗さんの翻訳。
  • N88BASIC で書かれた LISP を VBA に移植

    ► 2024 (60) ► 4月 (8) ► 3月 (21) ► 2月 (13) ► 1月 (18) ► 2023 (159) ► 12月 (9) ► 11月 (10) ► 10月 (12) ► 9月 (7) ► 8月 (28) ► 7月 (8) ► 6月 (12) ► 5月 (10) ► 4月 (9) ► 3月 (25) ► 2月 (14) ► 1月 (15) ► 2022 (165) ► 12月 (25) ► 11月 (19) ► 10月 (9) ► 9月 (11) ► 8月 (12) ► 7月 (10) ► 6月 (15) ► 5月 (16) ► 4月 (9) ► 3月 (9) ► 2月 (9) ► 1月 (21) ► 2021 (139) ► 12月 (16) ► 11月 (18) ► 10月 (11) ► 9月 (6) ► 8月 (11) ► 7月 (11) ► 6月 (18)

    sirocco
    sirocco 2012/04/19
  • プログラマは皆どのようにしてLisperと化して行くのか?

    LispでWebサービスを作ればYahoo!に60億で買ってもらえると聞いて 実はCと同じくらい速いコードが書けると聞いて ルンバがLispで書かれていると聞いて リリカルなので 面接で笑われてカッとなった マンガでわかるらしいので iPhoneアプリが開発できると聞いて iアプリでLispが書けると聞いて 初めて手に入れたポケコンがAI-1000だった ハッカーと画家を読んでしまった 普通のやつらの上を行きたいので 舌足らずなので セグウェイを制御するコードが一日で書けるようになると聞いて How to become a Hackerを読んだ 専用の求人情報に応募できると聞いて プログラミングClojureを読んだ 初めての人のためのLispを読んだ 自前のLispで書かれた将棋が強かったので LispとPostScriptがあればハッピーになれると聞いて LOLの熱にあてられた On

    プログラマは皆どのようにしてLisperと化して行くのか?
    sirocco
    sirocco 2012/04/19
  • FPGAでLispマシーン - ぱたへね

    小黒さんによる「Lispマシンを作ってみた」を見ました。なかなか遠くのイベントに参加できないので、録画で後から見れるようになっていると助かります。関係者の皆さんありがとうございました。 動画を見てもらえれば分かりますが、FPGAの上でLispコンパイラで作られたマイクロコードを実行するCPUを動かしています。CPUだけでなく、ペリフェラルやコンパイラも自作です。発表もわかりやすく、動画でも楽しさが伝わって来ました。その場で発表を聞いていたら、もっとテンション上がったと思います。 FPGAボードはスパルタン3Aのスタータキットです。スタータキットにSDカード、USBキーボードのI/Fが追加されています。DDRコントローラでは、私が昔書いたネタが役に立ったようで良かったです。速度に関しては、DDRのアクセスがボトルネックになっていそうですね。普通のDDRコントローラを作って、内蔵メモリでキャッ

    FPGAでLispマシーン - ぱたへね
    sirocco
    sirocco 2012/01/27
  • TechCrunch

    Happy Saturday, folks, and welcome to Week in Review (WiR), TechCrunch’s newsletter that covers the major stories in tech over the past several days. I feel inclined to begin this edition with a

    TechCrunch
    sirocco
    sirocco 2011/10/25
    合掌。
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Scheme 入門 8. 高階関数

    1. 初めに 高階関数は関数を引数にとる関数です。リストの各要素に同じ処理をするマッピング、リストから 条件を満たした要素を取り出すフィルタリング、畳み込み、条件によって要素を並べ替えるソーティングがあります。 高階関数はプログラムのモジュール化を促進します。 個々のケースの再帰関数を書く代わりに、多くの場合に適応できる高階関数を書けば、 プログラムが短くなり、見通しが良くなります。 例えば、ソーティングに高階関数を使うとさまざまな条件で並び替えをすることができ、 並び替えの条件と、並び替えの手順を完全に分離することができます。 SRFI-95 に定義されている sort という関数は2つの引数をとり、最初の引数に並び替えるリスト、 2番目の引数に順序付けをする手続きを引数にとります。 例えば、整数のリストを単純に昇順に並び替えるときは次のようにします。 < が2つの数を比較する関数です。

    sirocco
    sirocco 2011/10/18
  • apply の引数 - 日々ごちゃごちゃと考える

    apply: FUNCTION ARG &rest MORE-ARGS apply は何気に引数を複数に分けて受けられる。でも funcall とは違って、最初見たときは意味がわからん動作をする。 というのは、ARG と MORE-ARGS のうち一番最後の引数は list に突っ込んでおかねばならず、それ以外はそのままでいいというかそのままでないといけない。 #| ;;; 最初は受け取った引数をリストにまとめて返すこんな関数を ;;; 定義して使ってたのだけど、list がまさに同じ動作をする ;;; ことに気づいてしまった (defun args (&rest args) args) |# ;;; ふつーに関数 list を呼び出す (list 1 2 3) => (1 2 3) ;;; ふつーに関数 list を apply で呼び出す (apply #'list '(1 2 3))

    apply の引数 - 日々ごちゃごちゃと考える
    sirocco
    sirocco 2011/10/18
    あとで読む。
  • はてなブログ | 無料ブログを作成しよう

    ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く欲そそられますね 下足はミンチにし…

    はてなブログ | 無料ブログを作成しよう
    sirocco
    sirocco 2011/10/18
    apply がよく分かっていない・・・。
  • not found

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • CFFI - The Common Foreign Function Interface

    CFFI, the Common Foreign Function Interface, purports to be a portable foreign function interface for Common Lisp. The CFFI library is composed of a Lisp-implementation-specific backend in the CFFI-SYS package, and a portable frontend in the CFFI package. The CFFI-SYS backend package defines a low-level interface to the native FFI support in the Lisp implementation. It offers operators for allocat

  • wxcl-project.org -