タグ

Lispに関するsirocco634のブックマーク (47)

  • Redirect

    This page's content was permanently moved to: https://www.ic.unicamp.br/~meidanis/courses/problemas-lisp/L-99_Ninety-Nine_Lisp_Problems.html

    sirocco634
    sirocco634 2010/08/03
    Lisp関係の問題が99個あるよ
  • Karetta|[Gauche] SXPathを使ってRSSから要素を取り出す

    昨日の続き。 (rss->xsml "http://oss.timedia.co.jp/kahua-web/rss.xml") などとすると、 (*TOP* (*PI* xml version="1.0" encoding="euc-jp" ) (rss (@ (version 2.0)) (channel (title "Kahua-web") (link "http://oss.timedia.co.jp/show") (description "Kahua-web TEST Site") (lastBuildDate "Tue, 24 Oct 2006 08:09:40 +0900") (item (title "今日の一行") (link "http://oss.timedia.co.jp/show/column/%ba%a3%c6%fc%a4%ce%b0%ec%b9%d4") (

    sirocco634
    sirocco634 2010/06/05
    SXPathでRSSから要素を取り出すよ
  • Karetta|[Gauche] RSSを読み込んでSXMLに変換する

    他サイトのRSSを読み込んで加工し、自分のサイトに表示してみたい。 (use rfc.uri) (use rfc.http) (use sxml.ssax) (define (rss->sxml uri) (receive (schema user-info hostname port path query fragment) (uri-parse uri) (receive (status header body) (http-get hostname path) (call-with-input-string body (lambda (in) (let ((sxml-data (ssax:xml->sxml in '()))) (values status header sxml-data))))))) とりあえずこれでSXMLは得られたが、 さて必要な要素だけを取り出して加工するに

    sirocco634
    sirocco634 2010/06/05
    RSSを読み込み、SXMLに変換するよ
  • Scheme:使いたい人のための継続入門

    使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fact

    Scheme:使いたい人のための継続入門
    sirocco634
    sirocco634 2010/04/26
    継続の入門記事だよ
  • Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog

    リンクをたどっていくつか巡回するだけの簡単なクローラを作ってみたら、戸惑うところが多かったので、まずはそのメモ。 戸惑ったところ http-get オプションで「:no-redirect #t」を指定しないと、自動でリダイレクトする → リダイレクトされると、持ってきたページのURIが想定していたURIと違う場合がある。→ 「http://」から始まらないパス(相対URI)を長いURI(絶対URI)に戻せない。 オプション「:sink out」を指定すると、HTTPの応答のメッセージボディは出力ポートoutに書き出されていく。「:sink out」を指定している状態でリダイレクトが発生すると、リダイレクト前にoutに書き出されたものとリダイレクト後の結果の両方が書き込まれた状態になる。flusherオプションで適切に処理させる? 文字コード関連 http-getは文字コードの指定オプション

    Gaucheでクローラを書くことと、そのためのライブラリ - 再帰の反復blog
    sirocco634
    sirocco634 2010/04/17
    Gaucheでクローラーを書くためのライブラリ
  • yosaka

    略歴 大学時代にC言語をはじめるが、よくわからず挫折。 その後、Rubyを知り簡単なスクリプトを書くようになる。 関数型言語を勉強したくなりHaskellをやったが、よくわからず。 ;Haskellも勉強し直し中 その後、たまたま屋でみょーに口と目が大きい魚の表紙のオライリーを見かける。そのはプログラミングGaucheというらしい。 自宅に帰って、wikiで調べると何か凄いらしいとわかり、後日購入。 その後は、ほとんどGaucheでコードを書くようになる。 コンピュータ関係は当に勉強することが一杯あるなー。 これだけでも一生やっていけそうだ。 perl perl入門してみる。 cpanが楽しみ。 C言語 プログラミング言語Cとプログラミング作法を読み終えた。 Cは良い言語。 そういえば、どっかで読んだけどCのインデントが8なのは、ネストを深くしてはいけないという教訓から来ていると書

    yosaka
    sirocco634
    sirocco634 2010/04/14
    gaucheでスクレイピングしたときの覚書
  • WiLiKiでFlickrマクロ

    sirocco634
    sirocco634 2010/04/13
    WiLiKiでFlickrを用いるマクロ
  • よくわかるcall/cc

    内容に直接関係しないのですが、「スタックのコールバック」。@aharisuさんが言っていたのはたぶん「コールスタックの破棄」的なことだったかと。コールスタックごと吹き飛ばす的な。違ったかな。 継続 - Wikipedia 「ある時点での状態」を変数に束縛して、後からそこへ戻るといったことも可能になる。Schemeの継続は関数の形をとっており、これは「その関数を呼ぶことにより、そこに渡された引数をcall/ccで囲まれている式全体の値として継続に“注入”できる」と定義されている。継続 プログラムの実行順序を制御する概念継続 既に終了したスタックフレームを黄泉の国か ら引きずり出してスタックにぶちこめるわけである。普通の人間が「おっ、ここはCall/CCを使えば カッコ良く実装できるね!」などと思いついたりすることはまずありえないScheme/継続 - Wikibooks 継続を用いれば大域脱

    sirocco634
    sirocco634 2010/04/08
    継続についての記事まとめ
  • Tumblr

    Tumblr is a place to express yourself, discover yourself, and bond over the stuff you love. It's where your interests connect you with your people.

    Tumblr
    sirocco634
    sirocco634 2010/04/07
    マクロの作り方を解説したページ。後できちんと読むぞ!
  • sxpathがとてもわかりにくい - 再帰の反復blog

    sxpathを使ってみようとしたら、とてもわかりにくかったのでメモ。 Gaucheのマニュアルを見ると SXPathは、XML Information set (Infoset)のインスタンスのS式フォームである SXMLのためのクエリ言語です。 とあるけど、ここではクエリ言語に限らずに、sxml構造から特定のノードを取り出すための機能全般を表すことにする。 補足: HTMLをSXMLに変換する。 sxmlツリーを探索する コンバータ sxpath関数に与えるクエリ 条件で子ノードを限定する コンバータの埋め込み 関連:2010-04-12「sxpathのクエリに正規表現を書けるようにする」 補足: HTMLをSXMLに変換する。 とりあえず何か具体的なXMLデータがあった方がよいので、HTMLファイルをSXMLに変換することにした。でもたいていのHTMLファイルはXMLの形式になっていな

    sxpathがとてもわかりにくい - 再帰の反復blog
    sirocco634
    sirocco634 2010/04/05
    Gaucheでsxpathを使用する際のメモだよ
  • Gauche で Unit Test - GaUnitを使う - 【はてな】ガットポンポコ

    参考 GaUnit run-test.el GaUnit::wiki run-test.el::wiki .emacs C-c C-t が scheme-trace-procedure コマンドにキーバインドされていて使えないので、scheme-mode-hookで変更。 (add-hook 'scheme-mode-hook '(lambda () (define-key scheme-mode-map "\C-c\C-t" 'run-test))) (setq load-path (cons "/usr/share/emacs/site-lisp/run-test/" load-path)) (load "run-test-setting") run-test.scm を設置 testしたいファイルのあるディレクトリに test という新規ディレクトリを作成し、中にrun-test.s

    Gauche で Unit Test - GaUnitを使う - 【はてな】ガットポンポコ
    sirocco634
    sirocco634 2010/04/03
    Gaucheでユニットテストを実施する
  • not found

    sirocco634
    sirocco634 2010/03/02
    Emacs Lispで定義しておくと便利なマクロ
  • 紫ログ:Emacs上でGaucheのinfoを引く - livedoor Blog(ブログ)

    shiroさんに教わったのでメモっておきます ;;; from shiro (defun gauche-info-index (topic) (interactive (list (read-string (concat "Gauche help topic : ") (current-word)))) (switch-to-buffer-other-window (get-buffer-create "*info*")) (info "/usr/share/info/gauche-refe.info.gz") ;;(info "/usr/local/share/info/gauche-refe.info.gz") ;;うちは/usr/local/ (Info-index topic)) ;;(define-key global-map "\C-xH" 'gauche-info-index

    sirocco634
    sirocco634 2010/02/21
    GaucheのinfoをEmacsから引くよ!
  • scheme-complete.el を auto-complete.el で使う - 【はてな】ガットポンポコ

    Schemeのシンボルを補完入力してくれる、scheme-complete.elを使い始めました。 ソースコードの記述の違いを見て処理系を自動的に判断してくれるみたいです。 scheme-complete.el の用意してくれる補完バッファが、なぜかうまく動作しなかったので、auto-complete.el で使えるようにしました。 scheme-complete.elをインストールsynthcode - scheme-completeから最新のscheme-complete.elをダウンロードします。 解凍して、ロードパスの通ったところに置きます。 gunzip -c scheme-complete-0.8.9.el.gz > scheme-complete.el mv scheme-complete.el /usr/share/emacs/site-lisp/ 設定(scheme-co

    scheme-complete.el を auto-complete.el で使う - 【はてな】ガットポンポコ
    sirocco634
    sirocco634 2010/02/19
    gaucheの補完をauto-completeで実施するよ
  • TwitterのbotをGaucheで書き直してみた - 自称スーパーハッカーの適当なプログラミング雑記等

    「ニコニコ動画にVOCALOIDオリジナル曲の動画が投稿されたのをお知らせする」という、Twitterのbotを去年の12月ごろに作ったので、それをGaucheで書き直してみました。 「こんなbot公開していいのか」と怒られそうなほど欠陥だらけですが・・・ 実は、自分でニコニコ動画のRSSを読んでいるわけではなく、VOCALOIDオリジナル曲の新着動画を表示してくれるサイトの「ぼかにゅー」というところのAtomフィードを読んでいます。 (ぼかにゅーの開発者の方には許可取ってるつもりですが・・・) 一応、ぼかにゅーのURLを書いておきます。 ぼかにゅー: http://vocanew.naniyueni.org/ ぼかにゅー開発ブログ: http://d.hatena.ne.jp/vocanew/ 一応、Twitter ID「@vnewsong」で動いています。 まず、書き直す前の、Ruby

    TwitterのbotをGaucheで書き直してみた - 自称スーパーハッカーの適当なプログラミング雑記等
    sirocco634
    sirocco634 2010/02/18
    Gaucheでtwitter botを作成する
  • EmacsWiki: Advice Vs Hooks

    When having the choice to use a Hook or Advice to manipulate a certain package, what should you do? Hooks are always better because they break less. If the author provided a hook, then the author expects user code to run. Advice, however, can have unexpected side effects. Advice should only be used when no hook is provided. The problem is that advice subtly changes the semantics of the commands it

    sirocco634
    sirocco634 2010/02/11
    AdviceとHookの使い分けのポイントを書いているよ
  • GaucheでTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等

    絶対にすでに誰かやっていると思いますが、Gaucheを使ってTwitterに投稿するプログラムを書いてみました。 PerlRubyPythonのような、スクリプト的な用途はSchemeが便利です。 ; Twitterに投稿する (use rfc.http) (use rfc.base64) (use rfc.uri) (define (twitter-update status username password) (http-post "twitter.com" (string-append "/statuses/update.json?status=" (uri-encode-string status)) "" :Authorization (string-append "Basic " (base64-encode-string (string-append username

    GaucheでTwitterに投稿する - 自称スーパーハッカーの適当なプログラミング雑記等
    sirocco634
    sirocco634 2010/02/08
    Gaucheでtwitterに投稿するスクリプト
  • Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました

    基礎文法最速マスターブームにのっかってみる。Ruby基礎文法最速マスターをだいたいEmacs Lisp(elisp)に置き換えてみる。 Emacs LispはEmacsで使われているLisp方言のひとつだ。他の言語をある程度知っている人はこれを読めばEmacs Lispの基礎をマスターしてEmacs Lispを書くことができるようになるかもしれない。無保証ではあるが。 ある程度はCommon Lispにも応用できると思うよ。 更新情報 [2010/02/03] 注釈の誤りを修正。 let*について加筆。 基礎 対話的にEmacs Lisp式を評価する Emacsを起動したときに生成されている、スクラッチバッファ(*scratch*)を使うと、Emacs Lispの式を簡単に評価することができる。M-Tabで補完できるぞ。 式を書いたらC-jを押すと、式の値が出てくるぞ。 (+ 1 3) 4

    Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました
    sirocco634
    sirocco634 2010/02/02
    Emacs Lispの基礎文法を紹介しているよ
  • elispエラーった時の追い方 - unknownplace.org

    (setq debug-on-error t) しておいて、eval-bufer。StackTrace 出るのでそれを見る。 Emacs 23 にしたら anything-config.el が Invalid depth in char-table とかいって死ぬようになったけど原因わからなくてこまってたけどこれやったら ~/.emacs.d/anything-c-adaptive-history のロードに失敗してるのがわかった。消したらなおりました。imakado++

    sirocco634
    sirocco634 2010/01/10
    elispでエラー発生時の追跡方法だよ
  • Stevey's Blog Rants: Emergency Elisp

    Are you an Emacs user but don't know Lisp? Welcome to my first Emacs Lisp primer! This should hopefully help get you over the hurdle so you can have more control over your Emacs sessions. There are lots of ways to do things in Lisp, and some are "Lispier" than others. I'm going to focus on how to do things you probably already know how to do from C++ or Java. I'm mostly focusing on the language it

    sirocco634
    sirocco634 2010/01/06
    Emacs Lispのチュートリアル。きちんと読むぞ。