タグ

lispに関するtomoyaのブックマーク (66)

  • マシな作り方の作り方を作る | 麦 Baku

    ここ最近、Glispというアプリをつくっています。Lisp ベースのベクタードローイングツールで、Creative Coding と伝統的なチマチマやるデザインとの合わせ技っぽい使い勝手を目指してます。 ひとまずCuusheさんのビデオに手入れ続けて止まらないのが気が済んでからなのですが(ごめんなさい…)、終わったら格的にこれに注力してみたいなと思っとります。だから助成金やファウンディング含めてみなさんに色々ご相談したいです。 #glisp – Twitter Search / Twitter これが実現したらようやく「こいつなんか意味分からん事言って Adobe に因縁つけてるな」みたいなんがもう少し多くの人に理解してもらえる気がしています。少なくともベクターグラフィックに関しては、ソフトの使い勝手に気が散ってツール開発をしないとしんどくなる体質が改善して実制作に集中出来るようになれま

    マシな作り方の作り方を作る | 麦 Baku
    tomoya
    tomoya 2020/06/27
    すぎょい(語彙)
  • Javathcript - Javascript with a lisp

    Javathcript allows you to script your web pages in a simple lisp variant. Once you include Javathcript.js, any script tags in your document with type="text/lisp" will be evaluated. It will also download lisp files (only from the original server), if you have a script tag that has a src attribute. Finally, you can also evaluate lisp code from javascript using Javathcript.eval(lispString). While it

    tomoya
    tomoya 2012/08/17
    面白いんだけどなー
  • 腐女子のためのlisp入門 #2 - Oh! Can Not Diary

    こんばんは。第二回腐lispの時間です。 今回はループ処理と高階関数について説明します。そして最後にfizzbuzz問題のアレンジ版を作ってみますよ。 ループ 一番単純なループはwhileです。書き方はこちら。 (while 条件式 フォーム1 フォーム2 ) whileを使って、1からlimitまでのリストを作る関数を作ってみます。 fizzbuzzなので1から15までのリストを作ります。 (defun generate-list (limit) (let ((i 1) ret) (while (<= i limit) (setq ret (cons i ret)) (setq i (1+ i))) (reverse ret))) (generate-list 15) ; (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) 高階関数 高階関数というのは引数に関数を

    腐女子のためのlisp入門 #2 - Oh! Can Not Diary
    tomoya
    tomoya 2012/03/13
    沈黙を破って登場した第2回、レベル高過ぎてふいたwww
  • 腐女子のためのlisp入門 #1 - Oh! Can Not Diary

    腐lispの第一回です。いきなりですが、関数定義についての話をします。 関数定義の方法 elispの関数定義の方法は以下のようになっています。 (defun 関数名 (仮引数1 仮引数2 ...) フォーム) かけざん関数をつくる というわけで、早速、みなさんにはおなじみのあのかけざんをする関数をつくっちゃいましょう☆★☆★☆ (defun × (seme uke) (message "%s × %s" seme uke)) (× 'kusakabe 'sajo)  ; "kusakabe × sajo"と表示される 簡単ですね。 上のコードはEmacsのscratchバッファに書いてすぐに試すことができるので、好きなだけかけざんしましょう。 括弧について 最初は括弧が多くて戸惑うかもしれません。でも慣れればかわいく見えてくるので大丈夫です。 それでも信じられないという方は、開き括弧"("

    腐女子のためのlisp入門 #1 - Oh! Can Not Diary
    tomoya
    tomoya 2011/12/29
    ついにはじまったか
  • not found

    tomoya
    tomoya 2010/10/16
    発表者がヤバス!!
  • JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you

    MiSPLi: http://mooz.github.com/mispli/ MiSPLi Emacs に出会ったのが三年前. それから一年程して elisp をいじり始めたので, 僕と Lisp との付き合いはかれこれ二年ほどになる. JavaScript を始めたのが一年前だから, 僕の中では C 言語に次いで付き合いの長い言語だ. 必要にかられたときにちょこちょこと elisp を書いて, 終わったらしばらく別れを告げる. そんな中途半端な付き合いを続けていた三月も終盤, 竹内先生の書かれた「初めての人のための LISP」を読み, その内容に深い感銘を受けた. Lisp を Lisp で実装する, といった章があり, これまで何となしに使っていた Lisp の中身を垣間見ることができたような, そんな気分になっていた. その時に, 「ひょっとしたら僕にも Lisp の処理系を実装でき

    JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • EmacsWiki: Par Edit

    ParEdit (paredit.el) is a minor mode for performing structured editing of S-expression data. The typical example of this would be Lisp or Scheme source code. ParEdit helps **keep parentheses balanced** and adds many keys for moving S-expressions and moving around in S-expressions. Its behavior can be jarring for those who may want transient periods of unbalanced parentheses, such as when typing pa

  • Lisp:S式の理由

    S式は人に優しいか Shiro: Lispの不人気の理由として筆頭に上げられるのが、括弧だらけの 独特の見た目。とっつきにくい、一般的な表記法と違っていてわかりにくい、 等々、様々なことが言われてきました。しかし、 S式を捨てたLispも開発されましたが 流行ったとはいい難く、Lispな人々はいまだに括弧に固執しているかのようです。 S式のメリットをLisperに尋ねれば、エディタがどうの、マクロがどうの、といった 回答が真っ先に返って来ると思うんですが、そういう理屈をいくら理解しても S式がダメな人がS式を好きになったりはしません。どうも、もっと根的な 感覚に大きな隔たりがあるような気がします。非Lisperから理解しがたい、 Lisperの持つ感覚とはどんなものなんでしょうか。Lisp脳から見た世界は どんなものなのでしょうか。 構文木を人間が書く? S式は言ってみれば言語の構文木そ

    Lisp:S式の理由
  • GitHubアカウントをとりました

  • 破壊的関数の関数適用で破壊した値と戻り値が異なる場合があるのか〜 - わからん

    (setq リストX (nreverse リストX)) はリストを逆順にするイディオムです。nreverse は破壊的であるにもかかわらず、なぜ同名のリストに setq する必要があるのでしょうか。 ▼ ここまでは想定通り (nreverse '(1 2 3 4)) => (4 3 2 1) (reverse '(1 2 3 4)) => (4 3 2 1) ▼ リストを変数に入れて逆順にする (setq lsta '(1 2 3 4)) (setq lstb '(1 2 3 4)) (nreverse lsta) => (4 3 2 1) lsta => (1) ;; なんだこれは!! (reverse lstb) => (4 3 2 1) lstb => (1 2 3 4) 変数に束縛してから nreverse すると元の先頭要素だけからなるリストが返りました。ヘルプをみました。 ▼

  • HTMLパーサ - sileのブログ

    HTMLパーサは、たまに使いたいと思うのだが、なかなか良さそうなのが見つからないので、自分で作ることにした。 ソース: html2list(0.0.2) 行数は250行くらいで、依存packageはcommon-utils。 とりあえず、行儀良く(?)書かれているHTMLは、だいたいちゃんとパース出来てるような気がする...がまだ開発段階なので自信なし。 機能 外部から使える関数は、html2list:parseのみで、これはstreamかstring(HTML)を引数として取る。 結果としては、パース結果のリスト、HTMLの先頭に付随する宣言のリスト(DOCTYPEなど)、パースに使われなかったトークンのリスト(開発用)の三値が返される。 例: > (html2list:parse "<html><head><title>タイトル</title></head><body>ボディ</bod

    HTMLパーサ - sileのブログ
  • Diary of 11 2007

    世間では emacs しか使ってないように思われる私ですが、意外とエディタはい ろいろ使ってます。xyzzy やメモ帳や visual studio の IDE、そして、 我らが永遠のライバル vi。 RMS に 「viのフリーソフトウェア版を使うことは罪ではなく、苦行である」 とまで 言われた vi ですが、操作を覚えれば中々快適です。 emacs 風のキーバインドも使えるしね。 vi の中で日語を入力する方法は未だにわかりませんが… さて、最新の vim7 ではなんと scheme が使えるらしいですよ! と思ってぬか喜びしたのは良いんですが、vim 自体をコンパイルしないといけ ないのか。 lisp scheme で思い出したけど、{emacs-}lisp-mode の括弧を quack みたいにゴテゴテした表示にしたかったので、次のように。 (defvar lisp-paren-

  • push! - 主題のない日記

    Scheme は関数型言語である、と言う説明は充分ではない。 関数型的な性質を主軸にしたマルチパラダイム言語と言うべきだろう。 オブジェクトに破壊的な操作は出来る。 それにより、リスト同士が構造を共有するといったことも有り得たりするので、慣れないと混乱しやすいかもしれない。 実際に躓く例をしばしば見掛けるので、その内のひとつをとりあげてみる。 http://d.hatena.ne.jp/yagiey/20090322/1237738147 ここでは push! という操作が混乱の元になっている。 まず、 (push! lst item) という操作が (set! lst (cons item lst)) と同じ意味であることを意識して手順を追ってみよう。 (define x '(2 3 4)) (push! x 1) x ; => (1 2 3 4) リスト x の構造を図で表すとこうなる

    push! - 主題のない日記
    tomoya
    tomoya 2009/06/26
  • Lisping Mind of 2001/01/26

    if if の使い方を見ると、大抵その人が Lisp に浸っているかどうかが分かる。 手続型言語から見ると if は「制御文」であり、処理の流れを切り替えるために 使う。たとえばこんな風。 (if need-hogehoge (setq foo "hogehoge") (setq foo "fugafuga")) ああ、もったいない。if もやっぱり関数なのだ(末尾註)。ifは第一引数の値 に応じて第二引数を返すか、第三引数以後の最後のものを返すかするという関数 である。 (setq foo (if need-hogehog "hogehoge" "fugafuga")) これで、ifが返してくれる値を捨てることなくsetqに拾わせることができる。 とにかくLispは値が命。無駄に値を捨てない。もったいないお化けを出さない。 註: 厳密にいうとifはその定義の型式上純粋な関数ではなく、スペ

    tomoya
    tomoya 2009/06/19
  • Lisping Mind of 2001/02/01

    cons consってなんだろね。Lispに初めて触れる人にとってこれが一番変態に映るんじゃ ないかな。「なんで一個しか足せんのじゃ、appendの方が便利やん」とか、「な んで頭に足すねん、けつの方が便利やん」とか、「要素一個足すなら分かりやす いが、リストとリストをくっつけたらどうなるかよく分からん」とか、「よく括 弧の中に書くピリオド(.)はなんじゃらほい」とか。 確かにわけ分からん。 原理を知るまでは。 consってナニモノかっていうと、答は単純。 consセルを一個作る こんだけ。これ以上でも以下でもない。consセルって知ってる人は知ってると思 うが、要するにデータを二個入れられる箱だ。二人乗りのトロッコを思い浮かべ るといい。前の席と後の席がある。ただし、後ろにさらに一個トロッコを繋げる 場合は後ろの座席を潰して連結器を置いて次のトロッコまで伸ばす必要がある、 そんな風に考え

    tomoya
    tomoya 2009/06/19
  • 長文日記

    tomoya
    tomoya 2009/06/11
    ヤングな Lisp 入門
  • データベースエラー

    Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/sites/heteml/users/m/e/t/metaphor/web/masuda/blog/wp-includes/classes.php on line 576 Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/sites/heteml/users/m/e/t/metaphor/web/masuda/blog/wp-includes/classes.php on

  • Common LispでWebアプリケーション?·Teepeedee2 MOONGIFT

    サーバサイドJavaScriptに注目が集まる中、他の言語でもWebサーバ上で動作するべく開発が続けられている。Webブラウザ向けと、ローカルの環境とで開発言語を分けるのは面倒、という方は同じ言語で統一して書けるのは魅力的だろう。 Common Lispで作られたブログエンジン! 何となく個人的には縁遠く見えていた、Common LispとWebの関係がぐっと近づいてしまうのがTeepeedee2だ。 今回紹介するオープンソース・ソフトウェアはTeepeedee2、Common Lispで作るWebアプリケーションフレームワークだ。 Teepeedee2で作られたブログシステムのソースが公開されているので見てみて欲しい。CSSですらCommon Lispの文法に収まっている。これははっきり言ってとても気持ちが悪い(失礼)。HTMLも構造的に分解されていて、ぱっと見ただけではこれがブログシス

    Common LispでWebアプリケーション?·Teepeedee2 MOONGIFT
  • LISPをみんなで勉強しよう! : 今までに読んだ Lisp の本をいくつかあげてみる

    2009年01月29日01:35 by 刺身☆ブーメラン 今までに読んだ Lisp のをいくつかあげてみる カテゴリ刺身☆ブーメラン いままでいくつか Lisp のを読んできました。易しいものもあれば、難しいものもありました。自分の勉強の過程を整理するためにも、読んだことのあるを挙げてみます。 リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language) 著者:山 和彦 販売元:アスキー 発売日:2000-05 おすすめ度: クチコミを見る Mew (Emacs 上で動くメールクライアント) の作者である山和彦さんのです。このはとてもわかりやすくて良いでした。リストというデータ構造についてかみ砕いて説明してあり、括弧だらけでとても難しそうに見える Lisp に慣れ、恐怖感をなくすのにはぴったりでした。再帰も、このを読むまで