タグ

programmingとlispに関するMukeのブックマーク (4)

  • リリカル☆Lisp開発日記 » Blog Archive » [LSP42] Scratch

    (この記事はLISP Implementation Advent Calendar 1日目のためのエントリです。) ScratchでLISPを作りました。 ScratchLisp on Scratch Scratchとはマウスを使い、ブロックを並べることでプログラムの作成ができる教育用プログラミング言語/開発環境です。詳しい説明はWikipediaなどに譲るとして、ScratchでLISPを作った時の思い出話を始めようと思います。 動機 今年の春、訳あって42個のプログラミング言語でLISP処理系を実装することになりました。これはその1つ目です。 Scratchという言語を選んだのは同僚から推薦されたからです。「ただの奇妙な言語だと、どうせトランスレータを書くことになるだけだから面白く無い。もっと手を動かして苦労してもらいたい」という慈悲の心に溢れた素晴らしいコメントも頂きました。 変数

  • 第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp

    [入門]関数プログラミング―質の高いコードをすばやく直感的に書ける! 第1章関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる マルチコア環境が身近になった影響からか、勉強熱心なプログラマの間で関数型言語が話題になっているようです。関数型言語が奨励する関数プログラミングでは、これまで命令型言語で習得した、命令プログラミングの再代入を使う技法があまり通用しません。そのため、「⁠関数型言語は難しい」と言って途中で投げ出してしまう人も多いようです。 この特集では、関数プログラミングの習得を一度諦めてしまった人や、これから始める人のために、関数プログラミングのポイントをできるだけわかりやすく説明します。 筆者がわかるようになるまで 実は筆者も長い間、関数プログラミングを習得できませんでした。筆者は、長年Emacs Lispを使って、Mewというメールリーダーを開発して

    第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp
  • Make a Lisp で Lisp 処理系を学んでつくる (with Crystal) - はやくプログラムになりたい

    インタプリタ式の言語処理系を書いたことが無かったので一度実装してみようと思って,この手のは Lisp が定番だということで,前々から気になっていた Make a Lisp (mal) に挑戦してみました. Make a Lisp (mal) とは Make a Lisp は色々な言語で mal という Lisp 方言を実装してみようというプロジェクトです. 30以上の言語での mal 処理系実装 11段階のステップに分けられた実装ガイド(全体の構成図付き) 各実装ステップごとのテストケース といったほしい情報が揃っており,言語処理系初心者でも Lisp 実装について簡単に学べる環境が整っています. 11段階の各ステップは以下の様な感じです. The REPL : 実装を始める準備(自分の言語を Makefile に登録して make 一発でテストを走らせられるようにする,関数のスケルトンの

    Make a Lisp で Lisp 処理系を学んでつくる (with Crystal) - はやくプログラムになりたい
  • 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コードを書く - 八発白中
  • 1