タグ

Lispに関するch1248のブックマーク (46)

  • Juliaのマクロは凄かった。Lispは果たして勝てるのか? - SE教育パパむううみんのブログ

    この記事は移転しました。約2秒後に新記事へ移動します。移動しない場合はココをクリックしてください。

    Juliaのマクロは凄かった。Lispは果たして勝てるのか? - SE教育パパむううみんのブログ
  • 2024年のCommon Lispの処理系はこれだ!

    もともとQiitaで書いていた記事ですが、Qiitaを退会したところすべて消えてしまいました。 あのまとめどこいったの?と訊ねられるので、Zennで復活 SBCL (これがおすすめだ!) 2024年もSBCLが充実の一年ではないでしょうか(2015年から変化なし) 大体月に一度リリースしていますが、途切れることもなく安定しています。 以前(2010年)Quicklispでアンケートを取りましたが、Quicklisp利用者の8割以上はSBCL利用者のようです。 2024年も大勢に変化はないように思いますが、以前よりSBCL以外の処理系の開発の勢いが弱くなっているようなところもあるので、さらにシェアを伸ばしているかもしれません。 http://xach.livejournal.com/271794.html その他の処理系 CLISP (Lisp入門者にはこれがお勧め) この10年位開発が停滞

    2024年のCommon Lispの処理系はこれだ!
    ch1248
    ch1248 2021/02/05
    いい話
  • JuliaとLispのマクロの比較 - SE教育パパむううみんのブログ

    この記事は移転しました。約2秒後に新記事へ移動します。移動しない場合はココをクリックしてください。

    JuliaとLispのマクロの比較 - SE教育パパむううみんのブログ
    ch1248
    ch1248 2020/10/08
    すげえ力作。斜め読みだが、JuliaのマクロがLispを一部越えたり、近接していることが分かる。
  • Lispのアイデア | POSTD

    Lispと聞くと、冷蔵庫のような大きいサイズのコンピュータや、大文字のアルファベット文字列や括弧の並びといったような過去の時代のことが頭に浮かびます。そう、非常に多くの括弧。何故、オブジェクト指向プログラミングの作成者たちは、そんなにもLispの アイデア に魅了されるのでしょうか。そしてまた、アイデアとされるプログラミング言語というものは、どうやったら説明できるでしょうか。こうしたことを教えてくれなかったコンピュータ科学の教育を責めるべきでしょうか。 Lispは、John McCarthyが書いた Recursive Functions of Symbolic Expressions and Their Interpretation by Machines, Part I という論文によって、初めて世界に登場しました。その中で、McCarthyはプログラミングに新しい多くのアイデアを導入

    Lispのアイデア | POSTD
  • Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )

    今日のアート mograg garageで行われたKYOTAROさんという方が描かれた絵です。 手帳にも描いてもらいました。ありがとうございます!! 概要 タイトルが釣りっぽくなって申しわけない(だったらやらなきゃいいじゃん……)。 普段は練習にRubyを利用しており、あるコードを規則に従ってステップを作成するプログラムを作っていたところ、とてもではないが、メンテすることが不可能になってしまった。なので、Lispの方言の一つであるところのRacketを使ったところ、サクサクと実装できるようになった。なぜこの違いが生まれてしまったのか、できるだけプログラミング言語の特性に依存せずに、この違いを語ろうと思う。 はじめに つい最近、知人と出あったところ、『プログラミング言語の基礎概念 (ライブラリ情報学コア・テキスト)』が話題にのぼった。このテキストはオンラインによる問題集が付属しており、知人に

    Rubyで書いていたら破滅したので、Lisp/Racket で書きなおしたお話 (『プログラミング言語の基礎概念』について) - Line 1: Error: Invalid Blog('by Esehara' )
  • 48時間でSchemeを書こう - Wikibooks

    Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch

    ch1248
    ch1248 2016/05/24
  • Racket + big-bangを使ってどうしようもないプログラムを書く方法 - Line 1: Error: Invalid Blog('by Esehara' )

    この記事はLisp Advent Calender 13日目の筈でした。 はじめに: プログラミングの楽しみ さて、Lisp処理系と呼ばれるものには様々なものが存在します。その中で、そこそこに人気のある処理系であるRacketを使って、Lispと一緒に気軽に戯れてみよう!というのが今回の趣旨です。 まず最初に、プログラミングをする上での楽しみというのは一体何でしょうか。当たるようなサービスを作る? それとも仕事で効率化するようなものを作る? それとも、様々なアルゴリズムについての洞察を得たりする? どれも、プログラミングの楽しみであるのは間違いないし、否定することはできません。しかし、プログラミングの楽しみとは、別の意味では「ゴミみたいなプログラム」を書くことではないでしょうか。つまり、「どうしようもないプログラム」を作ってゲラゲラ笑うといったことです。 例えば、とある中級者のプログラマが

    Racket + big-bangを使ってどうしようもないプログラムを書く方法 - Line 1: Error: Invalid Blog('by Esehara' )
    ch1248
    ch1248 2016/05/21
    awesome
  • Lisperはプログラムに何を見るか - 八発白中

    男子校に通う中学生の僕らにとって「家庭科」の授業は休憩時間のようなものだった。 僕の中学校には家庭科室というものがない。だから、いつもの教室で野菜の種類やそれに含まれる栄養素なんかを教わるというだけの、正直退屈な授業だった。話される内容はどれもただ暗記すればいいものなので、授業を聴かなくても定期試験前に教科書を読み通すだけで九〇点は取れる教科だった。 学校としても文科省の教育課程に沿うがためだけに時間割にねじ込んでいるに過ぎなかったと思う。特別教室がないことでも真面目にこの教科を取り扱う気がないことがわかるし、生徒の方でもその学校の態度を敏感に感じとっていた。 そんなやる気のない男子学生の前に立って話すのは教師にとって楽しいものではなかっただろう。僕らの先生は、落ち着いた雰囲気でどこかしたたかさのある、髪の長い女の先生だった。 その日も彼女はいつも通り、キノコに含まれる何々という栄養素が、

    Lisperはプログラムに何を見るか - 八発白中
  • Web系女子がLispと出会って統計学に目覚めるまでのお話 - あんちべ!

    こんにちは!今年の春からWeb系企業でHTML/CSSデザイナーとして働きだしたキラキラ女子(を目指してる)のあんちべ(23)です!よろしくお願いします!私は普段自社のWebサービスCSSなどを書いている*1のですが、最近データマイニングに興味を持ち始め、データを分析して、自社サービスの売り上げ改善に貢献したいなーと思うようになりました!でも。。。私は文系出身で統計学とか全然わからない*2し、プログラミングも得意じゃない*3し、高価な統計解析ソフトを買うのも辛いです。。。無い無い尽くしですね><;!そんな私に救いの手が!インストール作業不要で、便利な統計処理機能が色々あって、しかも無料という素晴らしいソフト*4を発見しました!その名も"Incanter"です!なんでも、 Lispっていう古くから使われてきた実績のあるプログラミング言語で動いてて、Lispの文法でどんな処理をすればよいかを

    Web系女子がLispと出会って統計学に目覚めるまでのお話 - あんちべ!
  • Practical Scheme

    Shiro Kawai 11/20/2000初出、3/29/2002更新 Cに慣れたプログラマがSchemeのコードを見て面らうことのひとつは、 無名の関数やローカル関数の多用だろう。 特に実行効率に敏感なプログラマにとっては「関数呼出しは高価」 という感覚が染み着いているため、 至るところに散りばめられたlambdaに眉をひそめてしまうようだ。 しかしSchemeにおいては、 コード上に関数が書いてあるからといって 実行時にスタックフレームの生成やレジスタの退避などのオーバヘッドが起こるとは限らない。 例えば関数の最後に別の関数を呼び出す末尾呼び出し(tail call) はただのjumpインストラクションに置き換え可能だ。 ここでは、Cプログラマを対象に、 lambdaで生成される関数群が実際にどのように実行され得るのかを書いてみたい。 (なお、Schemeの規格ではlambdaフォ

    Practical Scheme
  • Common Lispゲーム開発環境構築(Lisp実装の選定) - さくらんぼのlambda日記

    Lispの実装(インタプリタ/コンパイラ)には複数の実装が存在しています。ゲームの開発には以下の2種類がお薦めです。 SBCL CLISP SBCLはユーザのシェアが大きい処理系です。特徴としては速度が早いのが特徴です。 CLISPはユーザのシェアがそこそこ大きく移植性に優れている処理系です。これはCLISPは実行形態として仮想マシンを利用して実行されるから高い移植性を確保できているのだと思われます。 なお、シェアなどの情報は(http://xach.livejournal.com/271794.html)を参考にしました。 この2種類以外にもLisp処理系自体の選択肢は多数あります。しかし、以下の事項を考慮し2種類に絞っています。 lispbuilder-sdlが簡単&無料で利用できるか (とりあえず)64bit Windowsでも動作するか ノウハウが簡単に得られるか? それぞれの項目

    Common Lispゲーム開発環境構築(Lisp実装の選定) - さくらんぼのlambda日記
  • 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コードを書く - 八発白中
  • あなたがLispを無視することができない理由 - 八発白中

    (この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ

  • キーバインドは覚えるな!(emacs) - nobkzのブログ

    TDDBCでもEmacsユーザがいたので、自分のEmacsに対する考え方を述べる。 キーバインドを覚える? 最近、Emacs始めました!とか言う人が増えて嬉しいのだが、それに伴いこういう発言をする人が増えた。 「キーバインドを覚えよう!」 「チートシートでキーバインドを暗記しています。」 とか言う人がいる。ちゃんとEmacsを使おうと思えば思うほどこういう人がいるのかもしれない。 だが、キーバインドを覚えるのはハッキリ言って無駄だ! そもそも、キーバインドは自分やりたいように設定するものだ!と僕は言いたい。 Emacsのコマンドを覚えよ! つまり、Emacsのコマンドを覚えて、好きなようにキーバインドするべきなのだ! Emacsのコマンドを覚えることが、Emacsの機能を把握することだと僕は思っている。 Emacsの拡張するのも、コマンドを創ることにしかすぎない。そもそも、Emacsのコマ

    キーバインドは覚えるな!(emacs) - nobkzのブログ
  • 非公式PDF版SICPの全訳を公開しました - minghaiの日記

    また1年振りの更新となりかけました。 Andres Raba氏により2011年から開発が続けられている、非公式PDF版SICPを全訳しました。 ファイル 恒例のgithubです。 https://github.com/minghai/sicp-pdf jsicp.pdfが日語版の体です。 ejsicp.pdfはデバッグ用の日語・英語併記となります。 ライセンスはCC BY-NC-SA 3.0です。商業使用は認められないことにご注意下さい。 SICPとは何か? SICPとはMITが作成した何も知らない新入生向けのプログラミングの教科書です。 プログラミングと強調したことには理由があります。このは良くあるプログラミング言語の教科書ではなく、あくまでもプログラミングを勉強するための教科書だからです。このことはこのの中でも、最初の前書き、序文にて何度でも繰り返し強調されています。筆者達が

  • 長文日記

    長文日記
  • プログラム=データ=遺伝子? Lispは無慈悲な言語の女王 - masatoi’s blog

    (Lisp Advent Calendar 2013 18日目の記事) しばしばLispの特徴として「プログラムを生成するプログラムを書ける」ということが言われるわけだが、普通の人はこれを聞いてどう解釈したらよいものか悩むと思う。字面通りに受け取ると、あたかも勝手に世の中の問題を把握してそれを解決するプログラムを出力してくれる真の人工知能のようなものを想像してしまうかもしれない。しかし残念ながら、そうした所謂「強いAI」は人工知能研究における聖杯であり、いまだにSFの範疇から出るものではない。 LISPerの言う「プログラムを生成するプログラム」とは普通もっと限定された意味である。そしてそれはほとんどの場合マクロによって実現される。 evalとマクロ Lispではプログラムとデータが同じ形をしているので、それまでプログラムとして扱っていたものを突如データとみなして操作することができる。逆に

    プログラム=データ=遺伝子? Lispは無慈悲な言語の女王 - masatoi’s blog
  • Schemeを実行するChrome拡張「chroscheme」を作った - Pastalablog in はてな

    jsScheme - Scheme interpreter in JavaScriptというサイトがある。 このページではSchemeをブラウザ上で実行できる。 どういうことかというと、つまりはScheme処理系がJavaScriptで実装されてる。 GPLライセンスで自由に使って良いとのことだったので、一部だけ手を加えて、Chrome拡張に移植した。 授業でちょうど今、『計算機プログラムの構造と解釈』(Structure and Interpretation of Computer Programs)を読んでて、英語版はリンク先で全部公開されてるから、これを読んでるとSICPにサンプルコードを見つけると、自分の場合はそれをコピーしてVimに貼り付けて実行するとか、大体の人なら授業指定の処理系Jakldに貼り付けたりして実行している。 学習的には丁寧に写経したりするんだろうけど、どう動くか

    Schemeを実行するChrome拡張「chroscheme」を作った - Pastalablog in はてな
  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • 計算機プログラムの構造と解釈と闘う : 第1幕 - ( wanna-wanna hack > ƪ(•̃͡ε•̃͡)∫

    コンピュータってどうして動くの? プログラムって何なの? この20数年間インターネットもろくにやらずコンピュータに全く興味がなかったのですが、 ふとした経緯でこの業界に入ってしまいました。 しかし、しかし、日に日に疑問ばかりが募ります。 プログラミングができれば何でも創れると聞いてプログラミングを始めたものの、 「引数」と「関数」、「返り値」の意味が分からず2ヶ月くらいずっと悩みました。 プログラム言語になぜ引数という概念があるの? この式はどんな順序でどう計算されて行くの? データって何? バイナリって何? プログラムって何?? 表現したい、創りたい、成したいものが山ほどあるのに疑問ばかり増えて行きます。 悩みを人に話すと「普通はそんなことまで考えない。頭おかしい。」と言われます。 何冊かを読んでみましたがプログラム言語の根の処理までは教えてくれません。 途方に暮れていた昨年末、ふと