Clojure (発音は/'klouʒər/[3], クロージャー)は、関数型プログラミング言語であり、LISP方言の一つである。関数型プログラミングのプログラミングスタイルでのインタラクティブな開発を支援し、マルチスレッドプログラムの開発を容易化する汎用言語である。Clojure言語のプログラムはJava仮想マシンで動作する。.NETで動作するClojureCLRも開発されている。Clojure言語は「データとしてのプログラムコード」 (英語:「code as data」) という思想で設計されており、洗練されたマクロ機構を持つ。 リッチ・ヒッキー (Rich Hickey)がClojure言語を設計した目的は、既存のJavaプラットフォーム上で動作して、並行コンピューティングができる、関数型のLISP系の言語を作ることである。[4][5] Clojure言語が並行コンピューティングを実
プロ生から、プログラミング言語マスコット の LINE クリエイターズスタンプがついに登場! Gopher、Lisp エイリアン、D言語くん(D-man)のスタンプです。 LINE での購入は「プログラミング言語マスコット」で検索してください。 プログラミング言語マスコット LINE スタンプ プログラミング言語のマスコットから今回採用したのは次の3キャラクターです。 Gopher は、Go 言語のマスコット。ホリネズミです。 Lisp エイリアン は、正確には言語のマスコットではなく、Lisp プログラマー以外から見た Lisp プログラマーみたいです。 D言語くんは、D言語 のマスコット。英語では D-man と呼ばれています。 イラストは、タキヲさん(@taxiwon)に依頼しました。スタンプが売れるとタキヲさんにもインセンティブが入るよう契約していますので、どんどん買ってくださいね
上の写真は、"On Lisp"や"ハッカーと画家"などの著者ポール・グレアムです。 ポール・グレアムは、 自身のブログ でLispに関する記事を多く執筆しており、現在はLisp方言の Arc に力を入れているようです。 以下の内容は、このポール・グレアムのLispに関する知見を元に自分なりにまとめたものです。 Lispのすごさとは 今まで自分は、"Lispはすごい" と思いながらも、実は半信半疑な部分がありました。 ところが、意外なところでそれがわかったのは、 プログラミングClojure 第2版 を読んだときでした。 以下、その文章の引用です。 言語の中からその言語を変えてしまうというのはLispに特有の利点だ。この利点は次に挙げるようなさまざまな側面をもつ。 Lispは同図像性を持つ(homoiconic)言語だ。すなわち、LispのコードはLispのデータでもある。これによって、「プ
変数とスコープ Common Lispでの変数は、大きく分けて3種類あります。 (ここでは、定数も変数に含めて話をします) 定数変数 スペシャル変数 レキシカル変数 定数変数 defconstantで定義でき、再代入も再バインドもできません。 「本物の」定数(数学的な定数など)に使います。逆に言うと、それ以外の場合にはあまり使う機会は少ないでしょう。慣例により、定数変数名の前後に+を付けることが多いです。 (defconstant +pi+ 3.14) +pi+ ; => 3.14 ;;; 再バインドしようとするとエラーになる (let ((+pi+ 3.1415)) (+pi+)) ; => ERROR スペシャル変数(ダイナミック変数) スペシャル変数(またはダイナミック変数)は、他の言語でいうところのグローバル変数に相当します(ただし、いくつか特長があります)。スペシャル変数は、慣例
私には、Emacs Lisp によるウェブアプリケーション開発シーンを盛り上げていきたいという熱い想いがあります。 最近、「次に来る大物Web言語」と称され Elixir などが注目されている様子が伺えますが、ウェブアプリケーションのサーバーサイド実装において次に来る言語というのであれば、個人的には Emacs Lisp こそを推していきたいと思います。なぜなら Emacs Lisp には、インタプリタでありそして同時にプログラミング環境でもある Emacs というソフトウェアが存在するからです。Emacs と最も親和性が高く、最もプラグインが豊富な言語こそが Emacs Lisp です。これを単なる Emacs の設定やプラグインを記述するための言語に留めておくには惜しいと言えるでしょう。 残念ながら現状 Emacs Lisp でのウェブアプリケーション開発は全くといって注目されていない
スポンジで虎を倒せるんだよ? (you can take down a tiger with a sponge, right?)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Emacsは「拡張可能なテキストエディタ」と呼ばれ1、エディタとしての基本的な機能ですらユーザーが柔軟にカスタマイズできます。 最初から同梱されてるライブラリだけではなくWebにあるEmacs Lispパッケージを導入することで、べんりなインターフェイスや強力な編集機能、追加の言語サポートを取り入れることができます。 さて、そのEmacs Lispパッケージの管理方法については大きく変化があるので、この記事では近年の潮流について紹介します。 読むのがめんどくさいひとのために結論 Emacsを最新版にして、Caskを入れよう!!!! Ca
このブログはEmacs Lispで書かれていて、CoreOSが入ったマシンにDockerコンテナとしてデプロイされ、動いてる。あなたがこのブログのページをロードする度に、Dockerコンテナ内で走っているEmacsがリクエストをハンドリングして、org-modeで書かれた記事ファイルをhtmlに変換し、用意されたviewに差し込み、レスポンスを返している。elnode というEmacsをウェブサーバー化するプロダクト見つけて、気持ちが高まってしまったのが動機。 記事はorg-modeで書けて、いい感じ。ソースコードは github.com/supermomonga/darui.io にあります。Emacs Lispによるウェブアプリケーション開発、ある程度知見が貯まったので次はSinatra風ウェブアプリケーション作って、その後ドッグフーディングしてちゃんとしたブログエンジンとして書きなお
7/27に開かれたLisp Meetup #30で「Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの」というタイトルで話してきました。 Clojureシンタックスハイライター開発から考えるこれからのLispに必要なもの from sohta 内容としては、去年のShibuya.lispのテクニカルトークで話した内容を重点をズラして焼き直したものです。終わった後にいくつか意見をいただきましたが、絶対数は多くないのでどう受け止められているのかはちょっと気になるところです。 「これからのLispに必要なもの」とタイトルにはあるものの、具体的に「これが必要だ」と言えてないのが残念な感じですが。。。この発表でいいたかったのは、「LispコードをCASEツールで解析できる対象にしていきませんか」という提案です。 ICSE勉強会なんかの話を聞いていると、他の言語(特にJ
男子校に通う中学生の僕らにとって「家庭科」の授業は休憩時間のようなものだった。 僕の中学校には家庭科室というものがない。だから、いつもの教室で野菜の種類やそれに含まれる栄養素なんかを教わるというだけの、正直退屈な授業だった。話される内容はどれもただ暗記すればいいものなので、授業を聴かなくても定期試験前に教科書を読み通すだけで九〇点は取れる教科だった。 学校としても文科省の教育課程に沿うがためだけに時間割にねじ込んでいるに過ぎなかったと思う。特別教室がないことでも真面目にこの教科を取り扱う気がないことがわかるし、生徒の方でもその学校の態度を敏感に感じとっていた。 そんなやる気のない男子学生の前に立って話すのは教師にとって楽しいものではなかっただろう。僕らの先生は、落ち着いた雰囲気でどこかしたたかさのある、髪の長い女の先生だった。 その日も彼女はいつも通り、キノコに含まれる何々という栄養素が、
edebugとはソースコードデバッガedebugとは、Emacs Lispのソースコードデバッガです。 これを使うと、Emacs Lispがどのように実行されているのかをステップバイステップで見ることができます。 前の記事で紹介した trace-function では不十分な場合は、edebugで本格的にデバッグします。 edebugは状態がころころ変化するので、実際に手を動かしてみましょう。 edebugを有効・無効にするC-u C-M-xで関数をedebug対象にするedebugは基本的には関数単位でedebug対象にします。 特定の関数をedebug対象にするのは簡単です。 通常、関数フォームを評価する、すなわち関数を定義するには、defun中あるいは、defunの直後でC-M-xを使います。 それに対し、関数フォームをedebug対象にするには数引数をつけ、C-u C-M-xを使い
elisp のデバッグ方法について以下の3つの方法を説明します. - printf デバッグ - backtrace - edebug ■■■ printf デバッグ elisp で printf デバッグを行なうには message 関数を使います.message 関数の結果は *Messages* バッファに出力されます. 例えば以下の<リスト1>のように使います. ---------------- <リスト1> message 関数を使った printf デバッグ (defun message-sample () (let (list) (dotimes (i 10) (push i list) (message "%s" list)))) ---------------- 実行中に目視したい場合は sit-for と message の組み合わせか y-or-n-p を使うのが良い
The value of variable ‘load-path’ is a list of directories to search, in order, for EmacsLisp libraries that you load. If you do not alter it (directly or indirectly), by default it contains the Lisp source directories for the Emacs distribution. If you install an Emacs package using the package manager (see InstallingPackages), it automatically configures ‘load-path’ to handle the packages you in
始めに 大抵 Debian package を使っているわけですが, auto-install が Debian package 化されたのを機に auto-install を結構使うように なりました. とは言え, 枯れたソフトウェアはどんどん Debian パッケージ化したいと思っています. ここでは ~/.emacs に書かれている基本設定をメモしておきます. ファイルそのものは末尾に載せておきます. Local Variables でのモード設定 ;; -*- mode: emacs-lisp; coding: euc-jp-unix; indent-tabs-mode: nil -*- ;;; $Id: $ 基本的に UTF-8 で作業をしたい所ですが, emacs 22 以前だと UTF-8 を利用するのに muse-ucs が必要なので, ~/.emacs 自体は euc-j
An extensible, customizable, free/libre text editor — and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. The features of GNU Emacs include Content-aware editing modes, including syntax coloring, for many file types. Complete built-in documentation, including a tutorial for new users. Full Unicode support for n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く