タグ

lispに関するkoko1000banのブックマーク (172)

  • Common Lispの軽量フレームワーク「ningle」を作りました - 八発白中

    Clackベースの軽量Webフレームワーク「ningle」を作りました。 ningle by fukamachi 背景 Clackベースのフレームワークとしては既に「Caveman」がありますが、CavemanはPerlのAmon2に影響を受けたこともあり、プロジェクトの拡大に伴う拡張性を損なわないために多くのことをします。 たとえばCavemanにはprojectという概念があり、開発環境と番環境でロードするconfigファイルを分けたり、どのようにビルドするかを定義したりできるようになっています。 複数のClackアプリを定義することもでき、最初はPCサイトのみ作っていたけど半年後にスマートフォン用サイトも作ることになった、という場合などにも、アプリの継承などですぐに対応できるようになっています。 Clackのミドルウェア利用も記述を少し追加するだけです。 けれど、これらの拡張性のた

    Common Lispの軽量フレームワーク「ningle」を作りました - 八発白中
  • Lispから得られる悟りについて - なつたん

    元ネタは、lispとその他関数型言語について http://okwave.jp/qa/q7384756.html Lispから得られる悟りについて、最近なんとなく分かってきた気がするので書いてみます。僕の思う「悟り」ってのは仏教的な定義とは違って、新しい概念が身につくくらいの意味です。おそらくEricが言っている enlightenment experience には近いんじゃないかな。 Lispを学んで得られる悟りってのは、言語処理系を作る側に回ると言うこと。SICPの4章はもろにそうだし、文法を拡張できるLispってのは、作る側に回るのにちょうど良いと思うんだ。そう考えると、俺Lispってのはよく見るけど、俺C++とか俺Javaとかはあんまり見ないよね。せいぜい俺Cくらい。Pythonには、IronPythonや、pypyやら別の実装があるけど、基はべた移植で俺Pythonってイメー

    Lispから得られる悟りについて - なつたん
  • モダンCommon Lisp: Quicklispによるライブラリ環境

    このエントリはModern Common Lispの一部です。 Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。 これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。 Quicklisp BETA セットアップ まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。 Quicklispをダウンロードする あなたのLisp処理系 (きっとSBCL以

  • モダンCommon Lisp: Common Lisp処理系のインストール

    同僚の深町さんと「モダンCommon Lisp」シリーズを初めることになりました。今回はCommon Lisp処理系のインストール方法について解説します。 どの処理系を使うか Common Lispには処理系が多数存在するため、プログラミングを初める前に、まずどの処理系を使うか決めなくてはなりません。商用ならAllegro CLでほぼ一択のようですが、お金がかかりますし、プロプライエタリソフトウェアですから、今回は候補から除外します。 無料で手に入る(フリーな)処理系としてはSBCLが有名です。多くのライブラリでサポートされている処理系であり、コンパイラの品質が高い(速いコードが生成される)という強みを持っていますが、スレッドサポートがかなり怪しいらしく(未確認)、またコンパイルに非常に時間がかかるという問題を持っています(開発のテンポに影響)。 SBCL以外には、例えばCLISPなどがあ

  • Common Lisp's Loop Macro Examples for Beginners

    CLTL's Loop Reference HyperSpec's Loop Reference Peter Karp's Loop Tutorial Iteration for each element in a list: > (loop for i in '(1 2 3) do (print i)) 1 2 3 Iteration for each cdr of a list: > (loop for i on '(1 2 3) do (print i)) (1 2 3) (2 3) (3) Iteration for each element in a vector: > (loop for i across #(1 2 3) do (print i)) 1 2 3 Iteration for each key of a hashtable: > (setf h (make-has

    koko1000ban
    koko1000ban 2011/02/25
    loopマクロの使用例
  • not found

  • not found

  • 「Lispのバトル」 - karasuyamatenguの日記

    Lisp王座をかけて戦うCommon Lisp対Scheme戦、というようなタイトルは実は読者の注意を引くための嘘だといきなり告白される。ふざけた始まりかたをするが、分かり易くためになるCommon LispとSchemeの比較論だ。 http://symbo1ics.com/blog/?p=7 CLもSchemeも1958年に発明された元祖Lispから枝分れした各種Lispを統一することを目的としている。ただ、その統一方が決定的に違っている。 アプローチの違い schemeの考え方は規格のなかの一文が表わしている: 「言語は機能を次々と重ねるのではなく、そのような機能を必要と思わせる欠陥と限界を除いていくべきだ」 つまり、Lispのアイデアから拡張可能な「最小限度のもの」を導くことを目的としていた。このアプローチは成功し、50ページの規格が完成した。言語規格としては驚くべき短かさだ。この

    「Lispのバトル」 - karasuyamatenguの日記
  • http://www010.upp.so-net.ne.jp/okshirai/stallmanfinal-ja.txt

    私のLispでの経験とGNU Emacsの開発 Richard Stallmanのスピーチの写し 私の通常のスピーチはLispと全く関係がないので、それらは今日のためには全 く適切ではなかった。だから、私は即席で喋らなくてはならないだろう。私の 経歴ではLispを用いて十分な事柄を行なってきたので、何か興味深いことを言 えるだろう。 Lispでの私の最初の経験は、高校でLisp 1.5マニュアルを読んだときだった。 それがこのようなコンピュータ言語があり得るというアイディアによって私の 心に風が吹いたときである。何かをLispで行なうチャンスをつかんだ最初はハ ーバード大学の新入生のときであり、私はPDP-11のためにLispインタプリタを 書いた。それはたいへん小さなマシンだった -- メモリを8kくらいしかもって いなかった -- そして、私は数千のインストラクションでインタプリタを何

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Lisk - Lisp and Haskell

    I am personally sick of working with Haskell’s syntax.tl;dr: Scroll right to the bottom to read what Lisk is. Most of this post is complaining about Haskell’s syntax. I like Haskell’s syntaxI came to Haskell in early 2008. I wrote my first Haskell program and I didn’t like the look of what I had produced. I also didn’t like typing it. Compared to Scheme and Common Lisp, my previous languages of ch

    koko1000ban
    koko1000ban 2010/12/02
    なんぞこれ
  • Lisp interpreter in 90 lines of C++

    I've enjoyed reading Peter Norvig's recent articles on Lisp. He implements a Scheme interpreter in 90 lines of Python in the first, and develops it further in the second. Just for fun I wondered if I could write one in C++. My goals would be 1. A Lisp interpreter that would complete Peter's Lis.py test cases correctly... 2. ...in no more than 90 lines of C++. Although I've been thinking about this

  • ((Rubyで) 書く (Lisp) インタプリタ) - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し

    ((Rubyで) 書く (Lisp) インタプリタ) - hp12c
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • ((Pythonで) 書く (Lisp) インタプリタ)

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

  • not found

  • elispのlambdaにもcalleeを - 技術日記@kiwanami

    いろいろ準備中です。小ネタで。 JavaScript には arguments.callee という、「今いる関数」が入っている便利なプロパティがあります。 arguments.callee - JavaScript | MDN これが非常に便利で、最近elispでも欲しくなってきたのでこう書いてみました。 (defmacro jslambda (args &rest body) (let ((argsyms (loop for i in args collect (gensym)))) `(lambda (,@argsyms) (lexical-let (callee) (setq callee (lambda( ,@args ) ,@body)) (funcall callee ,@argsyms))))) 名前がアレですが、とりあえず普通に lambda の代わりとして書けます。 (

    elispのlambdaにもcalleeを - 技術日記@kiwanami
  • Lispは受入れられないLispだ | taro-nishinoの日記 | スラド

    先日、Andrei Alexandrescu博士の"The D Programming Language"を読了しました。素直にいいだと思いました。下辺な私は、超一流の人が書いた著作について偉そうに論評を書くほど自惚れていませんので差し控えますが、個人的には周辺の人が訊いて来た場合に限り、口頭で感想くらいは言うかも知れません。つまりは、論評を書くならば、今の場合、Alexandrescu博士が理解する言葉で(普通は英語でしょう)書き、博士の目にも留められるように全世界に公開しなければ意味がなく、twitterや個人ブログでつぶやいても、所詮井の中の蛙でしかありません。 さて、何故このを注文したか、理由は以下です。 1.希少になるかも知れない。 2.D言語が日において実務で使われる可能性は当分低い。 3.C/C++プログラマにとってはD言語が自然的である。 1について。6月中に"Th

  • A micro-manual for LISP Implemented in C

    A micro-manual for LISP Implemented in C Recently I had to go through some code that uses the uIP TCP/IP stack, which reminded me, it has been a long time since I did something in C so I ended up spending the weekend implementing the 10 rules John McCarthy described in his paper A Micro-Manual for Lisp - not the whole Truth. This is a literate program, the code in this document is the executable s

  • Common Lisp: loopマクロ用法抄

    GrahamのANSI Common Lispでは嫌われていて碌に説明のないloopマクロ。一方、Practical Common Lispでは対照的に好んで用いられていて、全編に渡って頻繁に使われている。しかしloopマクロは難しいという意識があるのかその説明は第22章とかなり後回しにされており、ちぐはぐな感を受ける。ここでは、LOOP for Black-Belts という題のつけられたその章で解説されているloopマクロの用法を整理してみた。 ANSI Common Lispでの黒魔術扱いに敬遠していたloopマクロだったが、こうして整理してみるとそれほど難しく考えずとも便利に使うことができそうだ。 目次 繰り返し 計数繰り返し コレクション内繰り返し 変数更新しながら繰り返し ループ終了条件の追加 アクション 集約 ループ内ローカル変数 任意の式の実行 条件分岐 ループ中断 その他

    Common Lisp: loopマクロ用法抄