タグ

Lispとgaucheに関するsirocco634のブックマーク (19)

  • 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でユニットテストを実施する
  • 紫ログ: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を作成する
  • 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に投稿するスクリプト
  • GaucheでRDBプログラミング

    GaucheのRDBインターフェイス GaucheもRDBインターフェイスライブラリを持っています。このインターフェイスはPerlJavaRDBインターフェイス同様に、RDBソフトに依存しないAPIを提供するDBI(Database Independent Interface)と、DBIと各RDB用ライブラリをつなぐDBD(Database Driver)の2つのレイヤに分かれています。 従って、GaucheでRDBを扱うプログラミングを行うには、各RDBソフトのインストールのほかに、各RDBソフトに対応したDBDをインストールする必要があります。 現在、Gaucheから使えるDBDの一覧は、Gauche PackagesまたはGaucheのWebフレームワーク「Kahua」のDBIページにあります。 SQLite3のインストール この連載では、RDBソフトとして扱いが簡単なSQLit

    GaucheでRDBプログラミング
    sirocco634
    sirocco634 2010/01/06
    GaucheでDBを使う方法
  • Scheme:OnLisp

    On Lisp Paul Graham の著書でマクロのことが満載の。ただし Lisp で書いてある。 文中気になったコードをSchemeで書いてみるコーナー。 (セクションタイトルその他の邦訳は 野田さんの邦訳 をそのまま引用させてもらいます) マクロのツボ マクロはどのように、そしてなぜ違うのかを知ることは、マクロを正しく使うための鍵だ。 関数は結果を生むが、マクロは式を生む。----そしてこの式が評価されると結果を生む。 (「7 マクロ」から) マクロの引数は式であって値ではないことを忘れてはならない。 (「10.1 評価の回数」から) On Lispマクロのツボ5.1 Common Lisp は進化する5.3 関数の値のメモワイズ5.4 関数を合成する5.5 Cdr 部での再帰5.6 部分ツリーでの再帰7.1 マクロはどのように動作するか7.3 単純なマクロの定義7.5 引数リス

    Scheme:OnLisp
    sirocco634
    sirocco634 2009/11/29
    GaucheでPaul GrahamのOn Lispのマクロを書いてみる!
  • 高階関数 - Wikipedia

    高階関数(こうかいかんすう、英: higher-order function)とは、第一級関数をサポートしているプログラミング言語において少なくとも以下のうち1つを満たす関数である。 関数(手続き)を引数に取る 関数を返す 概要[編集] 高階関数は厳密には第一級関数をサポートしているプログラミング言語において定義される。C言語やPascalでは、関数へのポインタを利用して高階関数を模倣することができるが、関数ポインタによって第一級関数をサポートしているとみなされてはいない。高階関数は主に関数型言語やその背景理論であるラムダ計算において多用される。 また、ある関数(手続き)の引数となる関数(手続き)のことを関数引数[1]や手続き引数[2]と呼ぶこともある。 種類[編集] ここでは処理系に実装されていることが多いものだけをあげているが、高階関数も普通の関数と同様に、プログラマが自由に定義して利

    高階関数 - Wikipedia
    sirocco634
    sirocco634 2008/08/31
    関数を返す関数ってことさ!
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
    sirocco634
    sirocco634 2008/02/14
    Gauche(Scheme) でデバッグをする4つの方法
  • 1