js

javascriptなどのfunctionとかの表示を短くしてみる

書いたもの (defmacro set-pretty-keywords (mode keyword-num-char-list) `(font-lock-add-keywords ,mode (quote ,(loop for (keyword num char) in keyword-num-char-list collect `(,keyword (0 (prog1 () (compose-region (match-beginning ,num) (matc…

javascriptとemacsで対話的に開発がしたい(html使わないです><)

schemeでプログラムを書くとき、少し関数を書いてから実行して結果をみるとかいうことをよくします。 そんなことをjavascriptでもしたいと思いました。 なので、てきとーにelispを書いてみました。 準備 javascriptのインタプリタが必要す。(eg.spidermonkey…

1.7の機能を使ったら、素数generatorが簡単に作れたよ

js

spidermonkeyでしか試してません><。 function primes(){ let [n, box] = [2, []]; for(;;){ let a = box.filter(function(e) {return n%e == 0;}); if(a.length==0){ yield(n); box.push(n); } n++; } } var p = primes(); for (let i=0; i < 10; i++){ a…

MDCのリファレンスにアクセスするanythingを作った。

いつもjavascriptを書いている訳じゃないので、関数の名前とかを忘れてしまったりすることが多いです。そのたびに、MDCにいって調べるのですが、めんどうです。 そんな訳で、今日はMDCにアクセスするためanythingのコードを書いたりしてました。 とりあえず…

コモンズ・マーカーの表示/非表示をtoggleするgresemonkey

http://commonsmarker.com/のbookmarkletをみたら、結構かんたんにできそうだったのでつくりました。 機能 "\"のキー*1を押すとコモンズ・マーカーが表示したり、非表示になったりします。 こーど // ==UserScript== // @name commons's marker visuble togg…

別のprofileのところに今まで入れていたgreasemonkeyを入れる。

どうするのが一番楽なんだろう? 今回は、以下の様なコードを書いてhtmlを作成して、リンクを一つ一つクリックしていきました。 file = "/home/<username>/.mozzila/firefox/<anything>.<profile-id>" #fileはfirefoxのprofileのpath a = Dir[file + "/gm_scripts/*"] a.each do |e| puts("<a href=\"file://#{e}\">#{</a></profile-id></anything></username>…

TAGSを使ってみる。

参考 http://d.hatena.ne.jp/m-hiyama/20080627/1214549228 exuberant-ctagsの導入 sudo aptitude install exuberant-ctags .emacsの設定 とりあえず使うのは以下の2つだけ(他は覚えられません><) find-tag (M-.) pop-tag-mark (M-*) 使い難い位置だった…

そろそろjqueryのコードでも読んでみよう

js

ライブラリは便利みたいだし。

javascriptでstream

sicpの中にstreamというデータ構造が出てきます。 streamを使うと無限の長さのデータを表せるらしいです。 でも、streamが分かっているのか分かっていないのかよく分かりません><。 他の言語でstreamのようなものが実装できたら、分かっているということに…

firebugでletとか使うのはどうやるんだろう?

js

(function(n){ function range(i,j){for(i;i

javascriptは確かに変わった言語なのかもしれない。

js

javasriptはjavaに似せたまったく異なる言語。 普通なら指定した数の引数で関数を呼ばなくちゃいけないのに こんな風に書くことができる。 function sum(){//何も引数を取らない関数? return Array.reduce(arguments,function(x,y){return x+y}); } print(su…

prototypeについて

js

prototypeで定義すると元の関数を共有するみたい。 (元の関数を書き換えると、 new で作成されたオブジェクトの関数も書き換わる) function obj(){ this.m = function(i){return i}; } function proto_obj(){ proto_obj.prototype.m = function(i) i; } p1…

久しぶりにjavascriptで遊んでみた

js

spidermonkeyのversionが1.8だったので、javascriptの1.8(1.7)の機能で遊んでみる //多重代入 var [leta, a] = [[],[]]; //let //これで状態を持った変数をつくることができる。 for(var i=0; i<3; i++){ let(i=i){ leta[i]=function(){print(i)} }; //(func…

配列の中身をすべて取り出す時に…

js

//aは配列 for (var i=0, j=a.length; i < j; i++) { /*何かの処理..*/ } という感じのイディオムがあるけど、これってどれくらい早いんだろう? 試しに計ってみました。 >< コードはこんな感じです。 for1.js #!/usr/bin/env js var a = []; var n = 1000…

googleNewsのトップニュースがウザかったので…

js

邪魔なところをgreasemonkeyでカットしました。 コードはこんな感じです。 (function(){ var elem = document.createElement("div"); //var need = document.getElementById("topSection"); var need = document.evaluate( "//html/body/table[4]", document…

ついでにjavascriptだとおもしろいことができる

js

注意 spidermonkeyで実行しているので、ブラウザでの「print()」とは異なる動作をします。(rubyの「puts()」とほとんど同じような動作) function strange(n){ if (n <= 0) { return } print(n); (function(s){ var n=s; print(n)})("strange") strange(n-1…

javasriptでも楽に配列を生成したかった。

js

他の言語だと楽に配列を生成することができる。 rubyだと (0..9).to_a pythonだと [i for i in range(10)] でも,javascriptだと var a=[]; for (var i=0; i<10; i++){a[i] = i} と書かなくてはいけないです。 for文を書くのはとても面倒です。 なので、楽に…

久しぶりにjavascript(Arrayがメイン)

js

最初はここ*1のコードを写してみようと思ったのだけれど、3行ぐらいで飽きてしまった。 なのでMDCのリファレンス*2を見ながら適当にやってみた。 var hoge = 1; var foo = (function() {var a=[]; for (var i=0; i<20; i++){a[i]=i}return a})(); //存在しな…

javascriptを始めて10日くらい

やっとjavascriptの文法にも慣れてきました。 MDC*1のおかげです。MDCの中の人に感謝。 *1:http://developer.mozilla.org/ja/docs/

javascript実験5 prototypeを発見

js

このページのあたりをみてた >http://itpro.nikkeibp.co.jp/article/COLUMN/20070626/275986/?P=3 javascriptでは、組込み関数的なものを動的に定義できるみたい。 その時には、prototypeを使う。 例えば、Arrayオブジェクトに新たな関数を定義 Array.protot…

javascriptの実験

js

javascriptの実験2回目 しばらくは、spidermonkeyを使って、javascriptの文法の実験をする。 (まだ、ブラウザ上での実行はなし。) greasemonkeyのスクリプトって、こんな階層構造になっていると思う。 greasemonkey固有の知識 -依存-> javascriptの知識(we…

javascript-modeに乗り換えた。

js

こちらの方が良いかもしれない。 http://web.comhem.se/~u34308910/emacs.html

javascriptをつかった実験。

js

print("hogehoge"); //=> hogehogeこれは問題ない。 a=1; function () { a=2; } print(a); //=> 1関数の中のaは参照されないみたいだ。 階乗の計算(n!) function func(n) { if (n==0){ return 1} else{ return n*func(n-1)} } print(func(7)) //=>5040ここも…

javascript始めました。

js

理由 greasemonkeyが使いたかったのです。 でも、javascriptの文法がよくわかりません。 javascriptの文法自体を覚える必要がありそうです。 めんどくさがりなので、 保存->ブラウザに移動->再読み込み(f5) なんて耐えられません。 そこで、これから探すも…