The latest reviewed version was checked on 16 April 2020. There is 1 pending change awaiting review. Official Clojure reference & API : link "Clojure - Functional Programming for the JVM" by R. Mark Volkmann: link Moxley Stratton - "Clojure Tutorial For the Non-Lisp Programmer" : link Satish Talim - "Clojure Notes": link Eric Rochester - "Clojure Series" (deals with tokenization and stemming) : li
教科書: Clojure in Action 作者: Amit Rathore出版社/メーカー: Manning Pubns Co発売日: 2011/11/28メディア: ペーパーバック クリック: 24回この商品を含むブログ (2件) を見る マクロ ? Clojureランタイムの動き ソースコード ------> [Read] -------> [Evaluate]まず、リーダーがソースコードをClojureのデータ構造に変換してから、評価されてプログラムが実行される。 マクロは評価される前のデータ構造上で振る舞いを定義することができる関数で、評価される前にプログラムからコードを操作することができる。 ソースコード ------> [Read] --- <macro> ---> [Evaluate] これができると、Clojureに新しい機能を追加することができたりするということ。 u
ClojureのAPIリストを眺めていたら面白いマクロがありました。 -> と ->> です。 Rubyのメソッドチェインのようなことができます。 例えば次のようなRubyでの処理は 123456789.to_s.length => 9 ClojureでもJavaのメソッドを直接使う場合は .. でチェインできます。 user> (.. 123456789 toString length) => 9 -> を使えばこれをClojure上の関数で実現できます。 user> (-> 123456789 str count) => 9 123を文字化して逆順にする場合 user> (-> 123 str reverse) => (\3 \2 \1) reverseは文字のシーケンスを返すので user> (->> 123 str reverse (apply str)) => "321" のよ
別に難しくはないけど、いざ使いたいという時に方法を忘れてしまっており、何度か調べ直しているのでメモに残しておく。 以下のようにrust-cryptoを使えば実現可能。 サンプルプロジェクトの準備: $ rustc -V rustc 1.9.0 (e4e8b6668 2016-05-18) $ cargo new md5 --bin $ cd md5 $ echo 'rust-crypto = "*"' >> Cargo.toml $ vim src/main.rs # 以下を参照 使用例: extern crate crypto; use crypto::digest::Digest; use crypto::md5::Md5; fn main() { let mut md5 = Md5::new(); md5.input(b"hoge"); println!("hoge: {}", md
2011/12/29更新 時代遅れの手順になってしまいました。 Clojure+Emacsな開発環境を作る(late 2011) - λab's Blogを参照してください。 ネットブックにUbuntu 10.04 を入れたので emacs から Clojure を使う手順を最初の最初から書いてみる。2ヶ月ぐらい前にやったインストール方法だとだめでした。 環境 Ubuntu Netbook Edition 10.04 GNU Emacs 23.1.50.1 機種 HP mini 2140 emacs をインストールする emacs23とか22とかいろいろあるみたいですがよく分からないので最新っぽいのをインストール $ sudo apt-get install emacs-snapshot $ sudo apt-get install emacs-snapshot-el $ sudo apt
People come to Clojure from a variety of backgrounds. The purpose of this book is to help everyone get the most out of the Clojure language. It is not meant as a replacement for the documentation, found at the Clojure site. Please do not copy material from there to here! Feel free to post your own code, written in the Clojure language, here. However, please do not post excerpts, patches or other m
前回説明するといって放置したやつを再度。 XMLを扱うだけならば、cxmlを使うのがお手軽。 グーグル先生に聞くとcXMLという規格があるようでドキュメントが見つかりづらい。 Closure XMLというのが正式名称らしいのでそちらでググった方が良い。 公式サイトはここ。http://common-lisp.net/project/cxml/ 大体の使い方はQuick-Start Exampleで確認できる。 YahooのXMLを読んでみる Yahooの開発者ベージにXMLのサンプルが乗っている。 http://developer.yahoo.co.jp/search/rest.html このドキュメントのURLの構築の項の例を使う。 http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=YahooDemo&qu
普通のやつらの上を行けでLispにおけるマクロの効用が述べられているが, 「じゃあ具体的にマクロを使って『こりゃ便利だ』っていう例を見せてよ」 と言われてもなかなかすぐに出て来ない。 そこで、なんかいいマクロの使用例を思い付いたら書いてってみるコーナー。 通りすがりのマクロ初心者です。便利なマクロの具体例はすごく知りたいので、この項、期待してます。 Paul Graham「On Lisp」を読書中でなかなか良いけど、日本語の解説があった方が理解が早まるので。 もくじ マクロを使う局面定型パターンの簡略化関数呼び出しのインライン展開の代用新しい構文による抽象化ミニ言語の埋め込み宣言的なコードに見せるコンパイル時の処理具体例クラス定義でのリーダーの生成リストの内包表記 (List comprehension)リストの構築他の処理系の移植 関連:Scheme:マクロの危険 マクロを使う局面 なん
Common Lisp による日常作業 CSV ファイルを読む (read-line, read-line-into, simple-stream-read-line とか) 以前のエントリ CSV ファイルを読むコード で、ちょろっと いかにも Scheme なコードなのでループと状態マシンに書き直すとかの高速化の余地がありますね。 今迄ちっこいファイルしか読んでなかったので、ちょっとメモリ使用量が多いなー。 まぁ、Gauche と違って immutable な文字列じゃないんで共有とかできないから効率わるいんじゃろ。 などと目を背けていたのですが、ある程度の規模の CSV を読んだら途端に性能問題が。うがぁ。 簡単に体感できる量だと 20MB 程度のデータを読み書きしてみればわかります。 (use text.csv) (length (call-with-input-file "KEN
Emacs上でSLIMEを起動するのはかんたん。M-x slime と命令するだけでOKだ。 けど終了させるときはどうだろう。 まず、Emacsじたいの終了は最悪の結末をもたらす。これまで何度か起こっているように、lisp-runプロセスがEmacsという親プロセスを無くして暴走、CPUパワーを食いまくるということになってしまう。これをいちいちkillするのは何とも馬鹿らしい。 じゃあlispを消せば良いじゃん。うん、じゃあやってみる。 CL-USER> (bye) ; Evaluation aborted ==================== Lisp connection closed unexpectedly: exited abnormally with code 256…なるほど。inferior lisp program は殺せても、Emacs上でのバッファは消えない。おま
GrahamのANSI Common Lispでは嫌われていて碌に説明のないloopマクロ。一方、Practical Common Lispでは対照的に好んで用いられていて、全編に渡って頻繁に使われている。しかしloopマクロは難しいという意識があるのかその説明は第22章とかなり後回しにされており、ちぐはぐな感を受ける。ここでは、LOOP for Black-Belts という題のつけられたその章で解説されているloopマクロの用法を整理してみた。 ANSI Common Lispでの黒魔術扱いに敬遠していたloopマクロだったが、こうして整理してみるとそれほど難しく考えずとも便利に使うことができそうだ。 目次 繰り返し 計数繰り返し コレクション内繰り返し 変数更新しながら繰り返し ループ終了条件の追加 アクション 集約 ループ内ローカル変数 任意の式の実行 条件分岐 ループ中断 その他
About ★「魔法言語 リリカル☆Lisp」はノベルゲーム風のLispチュートリアルです。 "アリサ"や"すずか"達と楽しくLispを学べます。 全12話構成で各話の最後には練習問題が用意されています。 Lisp処理系にはNScripter上で動作するLispインタプリタであるNScLisperを使用。 別の処理系をインストールする必要はありません!! Lispとは ★CやC++、Java、BASIC、Perl、Ruby、PHP、Python、ML、Haskellなどと同じプログラミング言語の一つです。 マサチューセッツ工科大学のJohn McCarthy教授を中心とする研究グループによって開発され、1962年に発表されました。 LispとはList Processorの略で名前通りリストの処理を得意とします。 このことから人工知能の開発に多く用いられています。 NScLisperとは
C言語初心者が戸惑うものとして、「再帰」に関する技法がある。まあ、今時の言語で「再帰関数」を書けないのは、COBOL と FORTRAN, 古典的BASIC くらいのものだが、一般的な言語解説書での説明は大変おざなりなものである。だから、これは意識して憶えないことには、やはり身に着かない。 そこで「Super Technique 講座」では、再帰の技法を、再帰という発想の親玉である Lisp(Scheme) を利用して理解する、という無謀な企てをしてみることにする。「ある言語を理解するのに、何で別な言語を勉強するの?」という当然の疑問が湧くことだろう。しかし、しかし、「それがハッカーというものである」。筆者は MS-DOS の時代に、UNIXのテキストツールの使い方を理解するために、それらを自分で実装した。一見「無駄」に見える技術投資は、ことプログラマにとっては決して「無駄」ではない。Li
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く