タグ

Lispに関するclavierのブックマーク (42)

  • Javaのアセンブラ/逆アセンブラをLispで作った - リリカル☆Lisp開発日記

    Javaのアセンブラと逆アセンブラをCommon Lispで作りました。 一部対応してない命令がありますが、大体動作します。 アセンブリはもちろんS式で記述します。読み込むときはreadするだけ。 オペランドのない命令はアトム、オペランド付きの命令はリストとなっています。 とりあえずhello world。 ;; ljTest.lja (class "ljTest" "java/lang/Object" (public super) method ("<init>" "()V" (public) aload_0 (invokespecial "java/lang/Object" "" "()V") return) method ("main" "([Ljava/lang/String;)V" (public static) (meta max-stack 2) (getstatic "

  • 書籍「オンライン機械学習」を買ったのでCommon Lispで実装してみた。 - masatoi’s blog

    オンライン機械学習を買ったので、書いてあるアルゴリズムから線形識別器をいくつか試してみた。オンライン学習とは、データを一括処理するバッチ学習に対して、個々のデータを逐次処理する学習手法のこと。オンライン学習だと以下のようなうれしいことがある。 実装が簡単: 基的に実装は1ステップ毎の処理を実装するだけでほとんど終わる(スッキリ!) リアルタイム処理に組込める: その時点までの観測を元にした学習結果が常に予測に使えるので、学習しながら予測もしなければならない応用に向いている 収束が速く、データの性質が徐々に変化しても追従できる: これはリアルタイム処理に対して使うにはいい性質だが、偏ったデータやノイズに弱いという諸刃の剣でもある(そこで最適化対象に正則化項を入れるなどして悪影響を減らそうとする)。 データを一つ一つ処理するので、オンライン学習の計算量はデータ数に対して線形に増加する。バッチ

    書籍「オンライン機械学習」を買ったのでCommon Lispで実装してみた。 - masatoi’s blog
  • GitHub - bakpakin/Fennel: Lua Lisp Language

    Fennel is a lisp that compiles to Lua. It aims to be easy to use, expressive, and has almost zero overhead compared to writing Lua directly. Full Lua compatibility - You can use any function or library from Lua. Zero overhead - Compiled code should be just as efficient as hand-written Lua. Compile-time macros - Ship compiled code with no runtime dependency on Fennel. Embeddable - Fennel is a one-f

    GitHub - bakpakin/Fennel: Lua Lisp Language
  • Building a LISP from scratch with Swift

    Some say that building a small language interpreter, especially if a LISP, is one of those things you have to do at least one time in your life as a programmer, an eye opening experience that will give you new insights into how the tools you use everyday work and demystify a few concepts that seem daunting when seen from afar. In this article, we’ll implement a minimal LISP based on the 1978 paper

    Building a LISP from scratch with Swift
  • Beautiful Racket: Make a language in one hour: stacker

    Let’s make stacker, a program­ming language that acts as a stack-based calcu­lator: Our stacker language main­tains a stack of argu­ments, which starts out empty. Each line of the program repre­sents a new argu­ment for the stack. If it’s a number, it’s simply pushed onto the top of the stack. But if it’s an oper­ator—either + or *—then the top two argu­ments from the stack are popped off, and rep

    Beautiful Racket: Make a language in one hour: stacker
  • なぜLispなのか?― “データ” と “コード” | POSTD

    たくさんの人から 私が昨日Hacker Newsに書いたコメント についてもっと詳しく説明してほしいというメッセージをいただきました。例えば以下のような質問です。 Lispは単なる表記法の1つにすぎないと私は考えますが、間違っているでしょうか? Lispのコードをデータ構造にマッチさせるのがなぜそんなに重要なことなのか理解できません。(おそらく、そのマッチさせるという行為がなぜLispを使うのかという答えになるのだとは思いますが。)私はマクロの大事な何かを見落としているでしょうか?  何か私が気付いていないことがあるでしょうか? この質問に答えるには少し長くなりそうだったので、ブログに投稿することにしました。以下が私の答えです。 手短に言えば、Lispは 単なる 表記法の1つではなく、プログラミングとは 何か という考え方を根的に覆すものなのです。プログラミングに関する主流な考え方は、「

    なぜLispなのか?― “データ” と “コード” | POSTD
    clavier
    clavier 2015/06/12
  • 弱LisperがMITでSICP(シクピー)を受講した結果 - Qiita

    SICPとは何か Structure and Interpretation of Computer Programsという古めかしい表紙のをご存知でしょうか? これはもともと、マサチューセッツ工科大学(Massachusetts Institute of Technologies; MIT)の電気工学および計算機科学(Electrical Engineering & Computer Science; EECS)系の学部の授業の一目として提供されていた同名の授業から発生した教科書です。教科書は無料公開されています。 HTML版 http://mitpress.mit.edu/sicp/full-text/book/book.html Kindle版 https://github.com/jonathanpatt/sicp-kindle PDF版 https://github.com/s

    弱LisperがMITでSICP(シクピー)を受講した結果 - Qiita
    clavier
    clavier 2015/02/05
    弱LisperがMITでSICP(シクピー)を受講した結果 前編(書きかけ) - Qiita
  • 第1話: 手続き型しか知らない俺が美少女の女子高生に関数型プログラミングを学ばされることになったんだが - Qiita

    序文: 著者(?)より 多くの人々に、このような拙い文章が目に触れられ、当に恐縮しています。 自分の構成のまずさから、ちょっとした誤解が生まれているようなので、カッコ悪いですけれど、序文を。 この小説はある程度連続していて、この第一話においては、現状として「関数型プログラミング」の導入くらいの位置付けにして頂ければと思っています(例えば、来ならば参照透明や高階関数の話などが必要になるかとは思われるのですが、そこは順に追って書ければ、と思っています) もちろん、文中について問題があるところ、また「関数型プログラミングってこうじゃなかったっけ?」というご意見に関しては、教えて頂ければ、検討し、改善していきたいと思っています。よろしくお願いします。 始まり 新しい門出には必ず希望と可能性に心を踊らせると思う。 この僕も、この高校に入ってから、今後の学校生活についてわくわくしていた。手元にあ

    第1話: 手続き型しか知らない俺が美少女の女子高生に関数型プログラミングを学ばされることになったんだが - Qiita
  • 『計算機プログラムの構造と解釈』(SICP)を読み終えて - きのこる庭

    ようやくSICPが終わった。念願の夢の1つを叶えた。「ポインタを理解する」「コンパイラをつくる」とかから始まり 今年に入って 技術者として個人的にやりたかった事を3つ実現できた。良い調子。 サムネは記念にマッカーシー先生(再使用が許可された画像)。 完了までの期間 3.5ヵ月程度。平日は帰社後に2~3時間ほど、毎週土日はSICPに費やした。 学んだこと・できるようになったこと 1. より抽象的に物事の仕組みが考えられるようになった。 (「言語」という制約されたドメインを取っ払って純粋に実装について考えられるようになった) 2. 再帰のコードは悩まなくてもスンナリ頭に入るようになった。 3. Eval & Apply の陰陽によるプログラムの成り立ちを理解した。 4. 数学・コンピュータ科学に関する以下のことが人に説明できる程度には身についた。 - Newton法 - エラトステネスの篩 -

    『計算機プログラムの構造と解釈』(SICP)を読み終えて - きのこる庭
  • Lispのカッコは怖くないよ - knjnameのブログ

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

    Lispのカッコは怖くないよ - knjnameのブログ
    clavier
    clavier 2014/08/05
  • Creating a Swift syntax extension: the Lisp 'cond' function

    AppVenture has been updated All articles have been rewritten and improved. You will be forwarded to the updated article. Click here to go there directly. It has been less than a week since Apple announced Swift, and people are already writing libraries, snippet collections, or best practice posts. I suppose most did not even find the time to thouroughly read the Swift Book yet 1. Some Examples are

  • C言語でLISPを作るチュートリアル『Build Your Own LISP』 | 100SHIKI

    かなりマニアックだが素晴らしいコンテンツなのでご紹介。 Build Your Own LISPは、C言語でLISP言語を作るチュートリアルである。 しかも完成品は1,000行に満たないというから驚きだ。さらに無料で読めてしまう。 作者はエジンバラ大学の院生のようですな。興味がある方は是非どうぞ。

    C言語でLISPを作るチュートリアル『Build Your Own LISP』 | 100SHIKI
    clavier
    clavier 2014/04/10
  • ソフトウェア特論 講義資料 C言語によるLisp処理系

    Next: 1 Lisp処理系: Xlisp Up: Software IV Top ソフトウェア特論 講義資料 C言語によるLisp処理系 稲葉 雅幸 ここでは,LispのインタプリタをC言語で記述すること を紹介します.Lispの処理系は,read-eval-printを 繰り返すものですが,C言語でread, eval, print のそれぞれがどのようになるかを見ます. そして,Lispの処理系においては,データをreadした時, データを評価して計算中に新たにデータを生成したり, 新しいデータを結果として返したりします. 通常の計算機内で直線状に並んだメモリデータで, データの配列や長さが自由になるリストデータをどのように 表現するかが重要になります.そして,いらなくなった データがあった場合に,どのようにそのメモリデータを 再利用するのかについての仕組みを決める必要があります.

    clavier
    clavier 2014/03/26
  • 長文日記

    長文日記
  • SICP Web Site for the Japanese Edition

    魔術師: (名詞) MITの入門コースで使う計算機科学の優れた教科書 ハル・エイブルソン, ジェリー・サスマン, ジュリー・サスマン共著(和田英一訳)「計算機プログラムの構造と解釈 第二版」(ピアソン・エデュケーション 2000年). 表紙の魔術師ゆえにそういわれる.   LISP/Scheme世界の聖典のひとつ. まれに紫としても知られている. ハッカー英語辞典 第2版(MITプレス 1993)より λλλ 計算機プログラムの構造と解釈 第二版 λλλ λλλ(Structure and Interpretation of Computer Programs Second Edition) λλλ λλλ に関連するホームページ λλλ λ 訳者跋文 λ 正誤表 λ 人名地名考 Ben Bitdiddle, Alyssa P. Hacker, Slumervilleなどの意味 λ 問

    clavier
    clavier 2014/01/09
  • Anti-Pattern: Iteratively Building a Collection

    Ruby comes with many fantastic Enumerable methods, but the two most useful ones come through Smalltalk via LISP: #map and #inject. What follows are some lengthy method definitions followed by rewrites that are not only more concise but also more clear in their intentions. Building an array Requirement: As a user with a PGP key I want to see the list of key ids for all my signers so I can quickly i

    Anti-Pattern: Iteratively Building a Collection
  • Fwd: 「クロージャやラムダ式を理解していない組込エンジニアが関数型言語を理解するチャレンジングな4冊(+6冊+α)」 - laiso

    クロージャやラムダ式を理解していない組込エンジニアが関数型言語を理解するチャレンジングな4冊(+6冊+α) - hdk_embeddedの日記 最近、関数型言語についてのもちょくちょく読んでたので、これ結構共感した。 別に実用的なソフトウェア(AIとか?)をデベロップしたいとかはなくて、関数型言語のエッセンスというか文化に触れたいというのが目的になってる。 上記のエントリで出てこなかったやつでおすすめをあげる Land of Lisp 作者: M.D. Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型購入: 1人 クリック: 18回この商品を含むブログ (19件) を見る すごいHぐらいのとっつきやすさ。Common Lispの基礎を学びつつテキストゲーム→ウェブサーバー→ゲームウェブアプリケーションを作っていく

    Fwd: 「クロージャやラムダ式を理解していない組込エンジニアが関数型言語を理解するチャレンジングな4冊(+6冊+α)」 - laiso
  • Lisp講義1

    PFI社内セミナーで強力な型システムがもたらす様々な恩恵について発表した際の資料です。 補足的な記事はこちらをどうぞ: http://blog.konn-san.com/article/20120412/how-wonderful-to-be-typed また、発表の模様は以下の ustream からご覧になれます。 http://www.ustream.tv/recorded/21781769

    Lisp講義1
  • Quickdocs.org で学ぶCommon LispのWebアプリ運用ノウハウ - 八発白中

    先日、QuickdocsというWebサービスを作りました。 Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中 アプリ部分はほとんどCommon Lispで書かれています。今までもいくつかCommon LispでWebアプリを書いたことはありますが、公開されたWebサービスはこれが初めてです。 公開当初は半日に1回落ちたり、表示が変になったりしていました。そこで2週間ほどかけて、不具合の原因を突き止めたり、それを修正して堅牢にしたり、レスポンス速度を改善したりしてきました。 Common LispのWebアプリの運用ノウハウが少し溜まってきたから車にはねられるなどする前に共有したい 2013-03-06 02:06:20 via web 試行錯誤を繰り返してきており、伝えたいことも多いです。書いてみるとかなり雑然としてしまったのですべての人向

  • 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」を作りました - 八発白中