タグ

JavaScriptとLispに関するagwのブックマーク (13)

  • Ejacs + js-mode + MozRepl - EmacsでJavaScriptを書くための設定 - もうカツ丼はいいよな

    Emacs23.2からJavaScriptのためのメジャーモードとしてjs-modeが組み込まれている*1。auto-mode-alistに("\\.js\\'" . js-mode)が既に登録されているので*2、拡張子が.jsなファイルを開けば自動的にjs-modeとなるはずだ。 このときファイルを実行する方法として2つの選択肢が*3ある。 1つはEmacs上でJavaScriptのインタプリタを走らせる方法で、もう一つはFirefoxに実行させる方法。どちらが必要かは場合によるので*4、両方使えるように設定する。 Ejacs Ejacsというのは全部Emacs Lispで書かれたとかいうJavaScriptインタプリタ。 Google Code Archive - Long-term storage for Google Code Project Hosting.からzipを落としてき

    Ejacs + js-mode + MozRepl - EmacsでJavaScriptを書くための設定 - もうカツ丼はいいよな
  • 初心者向け言語もいろいろ : 404 Blog Not Found

    2008年02月04日21:30 カテゴリLightweight Languages 初心者向け言語もいろいろ Matzにっき(2008-02-04) - 初心者向けの言語がいつの魔に初心者向けの言語祭りにハッテンしているのでこっちも勝手に神輿を担いでみる事に。祭りの様子は以下で確認することができる。 最もタメになる「初心者用言語」まとめ - UK is not Britonish - ハチロク世代 Brainf.ck - 初心者が最も実装しやすい言語 なにしろ「Brainf.ckで書く」よりも「Brainf.ckを書く」方がよっぽど楽だもんね。 C - 最も言語実装初心者向け なんてったって、言語の母としては実例が一番が多いし JavaScript - 最も初心者に身近 ブラウザーに搭載されているというのはデカい。 Perl - 最も初心者に(も)優しいコミュニティ *.pmの懐の深さは

    初心者向け言語もいろいろ : 404 Blog Not Found
  • 私がJavaScriptを初心者用の言語として選んだわけ : 404 Blog Not Found

    2008年02月20日16:00 カテゴリLightweight Languagesアマグラマーのすすめ 私がJavaScriptを初心者用の言語として選んだわけ アマグラマーのすすめが止まっていて一部の読者を絶望させて申し訳ありません。他のを先に出さないといけないというのがその理由なのだけど、いい機会なので、 2008-02-20 - きしだのはてな デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJavaScriptがいいと言っていて、ぼくも同じような理由でいいと思って初心者の勉強にJavaScriptを使ってみたことがあるのだけど、実際にやってみるとかなり難しいと思ったので、そのことをまとめておきます。 への返答の形で、なぜ私がJavaScriptを選んだのかをまとめておくことにします。 まず比較的明らかな理由。 インストール不要の開発環境 ブラウザ

    私がJavaScriptを初心者用の言語として選んだわけ : 404 Blog Not Found
  • javascript - Lambda Calculus : 404 Blog Not Found

    2006年03月15日02:38 カテゴリLightweight Languages javascript - Lambda Calculus ClosureさえあればLambda Calculusは実現できるので、当然Javascriptでも出来る。 にも関わらず、検索してもあまり実例がなかったので一つ作ってみた。 Source: // define var zero = function(f){ return function(x){ return x}}; var succ = function(n){ return function(f){ return function(x){ return f(n(f)(x))}}}; var add = function(m){ return function(n){ return function(f){ return function(x

    javascript - Lambda Calculus : 404 Blog Not Found
  • 週記くらい - クロージャとは

    freehttp://d.hatena.ne.jp/smeghead/20071216/closure の続きというか今回はもうすこし真面目にあえて、コードレスで、自分の理解しているところのクロージャを説明してみるテストです。まず、誤解を恐れずに書いてしまうと、言語によってクロージャという機能が提供されている訳ではない。クロージャというのは、ある機能の副作用を用いたテクニックの名前である。クロージャと呼ばれているテクニックを使える言語は、以下の機能を提供しています。言い換えると、以下の機能の副作用によってクロージャというテクニックを使用できるようになります。 レキシカルスコープ(静的スコープ)関数がファーストクラスオブジェクト(第一級オブジェクト)であることレキシカルスコープオブジェクト(主に関数)が定義された時に、その場所から参照できる範囲を、オブジェクト(主に関数)の実行時にも参照でき

  • 第一級オブジェクト - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "第一級オブジェクト" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2024年11月) 第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。 この言葉は196

  • クロージャのわかりにくさ - 週記くらい(BTS開発記)

  • JavaScript とλ式 - あどけない話

    amachangさんの講演資料を観ていて、「ラムダ式も出来る」というページがありました。これに触発されて、少し書いてみます。 amachang さんが挙げていらっしゃる例は「λx.x」で、JavaScript で書くとこうなります。 function(x) { return x; } とても面白い話を示唆しているのですが、この単純な例だと、聴講者に「それなら C/Java でも書けるよ」という印象を持たれてしまいそうです。 そこで、JavaScript では表現できて、C/Java ではできない例を挙げてみようと思います。 funarg 問題 言語がλ式をエミュレートするためには、厳密な条件があるらしいのですが、その一つがクロージャです。クロージャを使った例を使えば、JavaScript ではできて、C/Java ではできないことが示せるでしょう。 私の上司である和田先生に聞いたところ、「

    JavaScript とλ式 - あどけない話
  • 「再帰→ループ」の変換が大変だった件 - IT戦記

    まず、ループは再帰で表現できる ループというのはすべて再帰呼び出しで表現できる。 たとえば、コレは var array = [1, 2, 3]; for (var i = 0; i < array.length; i ++) alert(array[i]); こんな感じになる (function f(array, i) { if (i < array.length) { alert(array[i]); return f(array, i+1); } })([1, 2, 3], 0); もし、 array がこの目的以外に使われないならコッチのがキレイかも (function f(array) { alert(array.shift()); if (array.length) return f(array); })([1, 2, 3]); ということは、再帰はループで表現できるはず という

    「再帰→ループ」の変換が大変だった件 - IT戦記
  • JavaScript < jQuery < Lisp ? - IT戦記

    はじめに 僕は jQuery も Lisp も触ったことがないので、このエントリが言ってることは間違えてる可能性があります>< もし、「それ違うよ」ってのがあれば指摘してくれると嬉しいです>< そういえば 初めて dankogai さんと会ったときに「S 式とアセンブラは両極端にいながら データ==プログラム というところが同じだ」というようなことを言っていた(気がする)。 データ==プログラムというのは当にすごい データとしてプログラムを直接書き換えたりいろいろなことができる。当にすごい。 もちろん、他の言語でも、リフレクションすることや、変数やプロパティに関数を格納することでそれと似たようなことは可能だ。でもそれは、データ=プログラムとは全然違う。 バイトコード書き換えは似ているが、バイトコードの世界がデータ==プログラムなのであってその言語自体はそうじゃない。でも、バイトコードを

    JavaScript < jQuery < Lisp ? - IT戦記
  • Shibuya.js: ActionScript でクロージャ、継続渡し : torus solutions!

    Shibuya.js Technical Talk #2 で、 発表をさせていただきました。ありがとうございました。 5 分の中にいろいろ詰め込もうとしたら、 訳の分からない発表になってしまいました。 発表者やスタッフのみなさんお疲れさまでしたー。 今回の発表では、 まず ActionScript(JavaScript)でのクロージャと継続渡しスタイルの実装方法の説明をし、 その後、 A* アルゴリズムというグラフの最短経路探索アルゴリズムを例にとって、 クロージャや継続渡しスタイルの便利さをアピールしようとしました。 発表資料 当日使った発表資料をおいておきます。 スライドの PDF デモの Flash(SWF) デモの ActionScript ソース Flash 8 を持っていれば、次の Fla ファイルを使ってデモを試すことが出来ます。 (Flash 8 の体験版 でも OK です

  • Javascriptで継続渡し - ヒビノキロク

    id:nozom:20060317#1142577630の続き。世界で最も誤解された言語とも呼ばれるJavascriptを使って継続渡しを書いてみた。 なお、Javascriptの処理系としてRhino*1を使った。参考文献は『入門Javascript』(ISBN:4756138713)。 function fib(n) { if ((n == 1) || (n == 2)) return 1; else return fib(n - 1) + fib(n - 2); } function fib_cps(n, k) { if ((n == 1) || (n == 2)) return k(1); else return fib_cps(n - 1, function(v1) { return fib_cps(n - 2, function(v2) { return k(v1 + v2);

    Javascriptで継続渡し - ヒビノキロク
  • 檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算

    JavaScriptによるテンプレート・モナド、すっげー簡単!」にて: 紙と鉛筆でラムダ計算を実行できることは必要だな、やっぱり。 なんて強調したので、ラムダ計算の入門、いってみよう。 [追記]練習問題集を追加しました。説明を読みながら、あるいは読んだ後で是非やってみてください。→「JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集」[/追記] ※印刷のときはサイドバーが消えます。 内容: JavaScriptの関数リテラル ラムダ式ってなんだ ラムダ計算の体系と適用操作 ラムダ式の例をいくつか β変換 -- ラムダ計算のキモ! β変換を何度か実行してみる 中間まとめ、まだ続きがあるよ JavaScriptの関数リテラル 最初に、JavaScriptに関する知識を確認しておきましょう。なお、JavaScriptの対話的実行環境については「もっともお手軽な対話的JavaScr

    檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算
  • 1