Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Introduction Rubyのラムダ式でアロー演算子を覚えて使うようになりました.そんなある日,Groovyに手を出したのですが,アロー演算子によるメソッド定義の書式がRubyと異なるので「?」となって,色々な言語のアロー演算子の書式について調べてみました. 調べてみると,「ラムダ式」「アロー演算子」「アロー関数」「クロージャ」など呼び方も仕組みもさまざまであり,同じものとして扱って良いのか悩みましたが,せっかく調べたので公開します.この投稿内容では,『「=>」か「->」を使ってメソッド(のようなもの)を定義して変数に代入し,(メソッドのように)実行できる』ものを対象としています. 他にもアロー演算子によりメソッド(のようなもの)を記述できる言語はありますが,短時間で調べたので抜けがあります.ご指摘いただければ徐々に改訂していきたいと思っています.できればサンプルプログラムとともにご
たまたま、goで書かれた物をperlへ移植しようとしていたらsplitの挙動の差が出てきまして、他の言語の場合どうなるんだろうとぱっと思いついた言語で実行して見ました。以下の文字列を言語標準でついている文字列のsplitを実行した結果となります。 "/path/to/hoge/" 言語 結果 perl(5.12) ['','path','to','hoge'] golang(1.5) ["" "path" "to" "hoge" ""] ruby(2.1) ["", "path", "to", "hoge"] ptyhon(2.7.8) ['', 'path', 'to', 'hoge', ''] js [ '', 'path', 'to', 'hoge', '' ] perl6 ("", "path", "to", "hoge", "") # (perl6-m -e 'say "/pat
また、JQueryではキャメルケースでメソッド名やプロパティ名などが定義されていますが、OpalではRubyの文化に合わせてスネークケースで定義されているようです(*9)。 Nativeなコードの実行 「`(アクサングラーブ)」を使うことで、NativeなJavaScriptのコードを実行することができます(*10)。 `window.open("http://example.com", "example")` windowオブジェクトのほか、前回までに使用したWebSocketやEventSourceなどへアクセスする際にもこの構文を使うことになりますが、「`」の中はJavaScriptの文法になるためOpalを使うメリットが半減してしまいます。 そのようなケースのために、OpalではKernel#Nativeが用意されています。このメソッドを使うことでRubyライクにJavaScrip
(Last Updated On: )RailsはJavaScript文字列エスケープメソッドをサポートしています。JavaScript文字列エスケープのエントリで様々な議論があったようです。弊社ではRailsアプリのソースコードも検査しているので、参考としてRailsのソースコードを確認したことを追記をしたました。Rails開発者に直して頂きたいので独立したエントリにしました。 参考: JavaScript文字列のエスケープ JavaScript文字列エスケープの解説 JavaScript文字列のエスケープを回避する方法 結論から言うとRailsのJavaScript文字列エスケープメソッドには問題があります。問題点の指摘の前にどのようなコードになっているかを見てみます。 module ActionView module Helpers module JavaScriptHelper J
日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと
RedScriptはRubyを真似て開発されているJavaScript代替言語です。 別な記法で記述して変換を行ってJavaScriptを生成するタイプの言語は幾つかあります。今回はRubyなどを参考に開発されたRedScriptを紹介します。 インストールしました。node.jsのライブラリです。 ファイル監視機能があるので自動で生成されます。rsという拡張子になっています。 @でthisになります。Ruby風? ループ処理。 ハッシュの処理。 ifによる分岐処理。 requireも使えます。 switch/case文。 文法的にはRubyに似ている箇所が多いですが、完全にそうという訳ではなく、RubyとJavaScriptがミックスされたような文法になっています。doを使ったりもできます。この辺りは好みが分かれるところかも知れません。 RedScriptはnode.js/JavaScr
RubyJSをためしてたらこんな時間で明日が心配な今日この頃です。 RubyJSはUnderscore.jsやstring.jsみたいなJavaScriptのライブラリです。 特徴はRubyの機能をJSで実装しているところ。JS的な書き方を無視して、以下にRubyらしく書けるかに注力されています。RubySpecに準拠するように書かれているので、Rubyを普段使っている人には無意識に使えるようになっています。 使い方は簡単でライブラリを読み込んで、JSの任意のオブジェクトやプリミティブな値を RubyJS メソッドを使ってラップしてやります。この RubyJS メソッドが適切な RubyJS オブジェクトに変換してくれます。もちろん R というエイリアスが切られているので、こちらを使いましょう。 R 'hoge' #=> RubyJS.String R 1 #=> RubyJS.Fixnu
a = ["1", "2"] a.push("3") a.map!(&:to_i) # [1, 2, 3] a.delete_at(1) a # [1, 3] a.reverse! # [3, 1] a.unshift(777) # [777, 3, 1] a.last # [1] var a = ["1", "2"]; a.push("3"); a = a.map(function(n) { return parseInt(n, 10); }); a.splice(1, 1 /* how much */); a; // [1, 3] a.reverse() // [3, 1] a.unshift(777); // 3 a; // [777, 3, 1] /* or in place: */ var b = [3, 1]; [777].concat(b); // [777, 3, 1] a
当日使われたスライドのうち、許可いただいたものを公開しています。 基調講演 「JavaScriptプログラマのための全方位的完全武装ガイド」mala メタプログラミングの光と闇 イントロダクション:柴田淳 Perl:牧大輔 Ruby:角征典 Python:小泉守義 Haskell:山本和彦 Node.jsとは何だったのか イントロダクション: 「Node.jsとは何だったのか?」竹迫良範 Perl: 「AnyEvent と Coro の復習」竹迫良範 JavaScript: 「10分でわかるNode.js」清水俊博 Python: 「Twistedとかgeventとか」おおたに Ruby: 「EventMachineとは何だったのか」 なひ 「常識を覆すソートアルゴリズムSleep sort」竹迫良範 「Node.jsで学ぶマルチスレッドプログラミング」竹迫良範 JavaScript八面六
オープンソースによるJavaのフレームワークである「Seasar2」の作者にして、著名なJavaプログラマのひとりとして知られるひがやすを氏が「Javaに未来はないかなと。(略)個人的には少しずつJavaから離れていっています。」という発言をパネルディスカッションでしました。昨日の記事で紹介したので、お読みになった方も多いと思います。 Javaはエンタープライズ分野に限られるようになるか Javaの将来像について、米調査会社ForresterのアナリストJohn Rymer氏とJeffrey Hammond氏が、同社のブログに「The Future Of Java」というエントリを先週末ポストしています。 彼らは、オラクルの戦略が次のようにJavaのエコシステムを変化させるだろうとしています。 Oracle’s strategy for Java will change the Java
「JavaScript のクロージャ と オブジェクト指向 」のつづき Ruby の Enumerable Ruby ではコンテナの役割を持つクラスに Enumerable モジュールをインクルードし、その要素を順にブロックに与えるメソッド each を定義することにより、要素に対する便利なメソッドがいくつか使えるようになる。 例えば、「人」は `名前' と `年齢' を属性として持ち、 「グループ」 に所属しているとする。 Ruby のイテレータ (2) - Enumerable より # 人 class Person attr_reader :name, :age def initialize(name, age) @name, @age = name, age end def to_s @name + " " + @age.to_s end end # グループ class Grou
split の研究 split 関数の挙動が言語ごとに微妙に異なると知人と話題になったので調べてみました。結果はまとめをどうぞ。 Ruby まずはRubyから調べてみます。irb を使って調べました。 % irb ... まずは普通に分割 >> "a,b,c".split(",") => ["a", "b", "c"] 末尾に空要素があると、省略されてしまう >> "a,,c,,".split(",") => ["a", "", "c"] 末尾の空要素を省略しないためには -1 が必要 >> "a,,c,,".split(",", -1) => ["a", "", "c", "", ""] 空文字列だと結果も空 >> "".split(",") => [] -1 をつけても同様 >> "".split(",", -1) => [] 分割パターンを指定しない場合も同様 >> "".split
2007年12月01日18:45 カテゴリLightweight Languages LLいろいろ、スコープいろいろ このスコープの「レキシカルさ加減」が、実は言語によって結構違うので、この機会にちょっとつっこんでおくことにする。 ハタさんのブログ : javascriptを初めて学ぶ人についてのおさらい。その1 変数で宣言したものには、参照先が決まっています。その参照の範囲はスコープとも呼びます。ここでいきなり問題。以下のコードは何をalertするでしょうか? (function(){ var i = -1; for(var i = 0; i < 10; i++){ /* whatever */ } alert(i); })() (function(){ var i = -1; for(var i = 0; i < 10; i++){ /* whatever */ } alert(i);
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く