Nendo is a dynamic programming language built on top of Ruby environment. It is designed to be a macro language of Ruby.
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 僕は公私ともにPythonな人なんだけど,「メタプログラミングRuby」を読んでみた。 一言で感想を言うと,すごい良い本だから「みんな読むべき」。 本書では,まずRubyのオブジェクトモデルについて,ストーリー形式で分かりやすく解説をするパートが最初に来ている。途中にちりばめられる「ジャッジメントですの」とか「絶望した!」とかいった粋な翻訳ににやりとしながら読んでいると,すんなりとRubyのオブジェクト指向機能について理解できてしまうはず。 その後,メタプログラミングのさわりを解説,メタプログラミングの実践的な例としてRuby on Railsで使われているActiveRecordを例
「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
ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 ((Rubyで) 書く (Lisp) インタプリタ) : melborne.github.com - Peter Norvigさんの((Pythonで) 書く (Lisp) インタプリタ) という記事(青木靖さん訳)がすごい 100行ほどのPythonコードで Schemeのインタプリタの基本部分を書いている Pythonのコードは見た目がRubyのコードとよく似ているので Rubyしか知らない僕でも何となく読める この記事を解読してRuby版Schemeインタプリタを書いたら インタプリタ Pyhon Scheme それからRubyのことも もう少し分かるようになるかもしれない こんなお得な勉強方法はないぞ きっと そんなわけで... 以下では上記記事を参照し
これまで話していないRuby言語の構文と評価の詳細について述べる。完全な説 明をしようとは思っていないので、本書に登場しない細かい仕様は全てカット した。だからこれだけ読んでもRubyプログラムが書けるようになるということ は、まずありえない。完全なものが必要なら添付CD-ROMに同梱したリファレン スマニュアル\footnote{Rubyリファレンスマニュアル:添付CD-ROMarchives/ruby-refm.tar.gz}を 読んでいただきたい。 Rubyを知っている読者はこの章も飛ばして構わない。 リテラル Rubyはリテラルを使った式の表現力が非常に高い。 Rubyをスクリプト言語たら しめているのは第一にトップレベルの存在、第二がリテラルの表現力だと筆者 は考えている。第三には豊富な基本ライブラリが挙げられるだろう。 リテラルは単体でも非常に強力だが、組み合わせるとさらに強力
Ruby言語について、当面第一部を理解するのに必要な知識だけ簡単に解説して おく。プログラミング上のテクニックであるとか注意すべきところなんてもの は全く指摘しないので、この章を読んだからと言ってRubyプログラムが書ける ようになるわけではない。既にRuby言語の経験がある読者はこの章は飛ばし て問題ないだろう。 また文法については第二部で嫌というほど話すから、この章ではできるだけ文 法の詳細には関らないようにする。ハッシュリテラルなどバリエーションがあ る表記は最も多用されるもののみ示す。省略可能なものは原則的に省略せずに 示す。そのほうが構文規則がシンプルになるからだ。いちいち「省略できる」 とも言わない。 オブジェクト 文字列 Rubyプログラムが操作できるものは全てオブジェクトである。Javaのintや longのような「基本型(primitive)」はない。例えば以下のように書
2005-05-14 15:48:46 +0900 (1238d); rev 16 青木が使っている Ruby のコーディングスタイルです。 インデント インデントは 2。 インデントがでかすぎると end が離れて美しくない。 {....} のインデントだけを 4 にしてみた時期もあったが、 やっぱり全部 2 にしたほうが単純だし統一感がある。 またタブは一切信用せずに全部スペースにする。 ※ 有名な Ruby hacker の前田修吾氏はかつてインデントを「3」にしていた。 この理由について青木は if true while true unless false return 1 end end end のように end がピッタリそろうのが素敵かなあ、 と評したのだが、実際の理由は全然違ったようだ。 → [ruby-list:18603] ※※ 素敵という言葉は江戸時代にできたそうだ。
Drop on Scriptは、Perl, Python, Tcl/Tk, Rubyなどのスクリプト言語で作成したスクリプトファイルのアイコンに他のファイルをドラッグ&ドロップできるようにするためのシェル拡張プログラムです。 画面イメージでは、Tclスクリプトファイル(native2ascii.tcl)にJavaのプログラムソースをドラッグ&ドロップしているところです。通常のエクスプローラでは、tclファイルにドラッグ&ドロップしても何も反応しませんが、Drop on Scriptをインストールすると、このようにドラッグ&ドロップして引数(argv)に渡すことができるようになります。 pack [text .t -width 80 -height 20 \ -yscrollcommand {.sy set}] -side left -expand yes -fill both pa
This is an implementation of the BrainFuck language in Ruby. In case you haven't come across Ruby before, it is an extremely well designed object oriented programming language, which has a number of interesting features - to learn more visit the Ruby home page. Personally, I prefer ETA to BrainFuck, but I was wondering if you could translate between the two. In fact, I think it would be possible t
このページは、ソフトバンク パブリッシングから出版されている『プログラミングの宝箱 アルゴリズムとデータ構造』を読んでいるときに、せっかくなのでサンプルコードを Ruby で書き直した場合、どうなるんだろうと思いつつ作っています。 アルゴリズムに関する解説は特にしていませんので、参考書籍をご覧下さい。 また、内容には充分注意していますが、あくまでも僕の勉強メモになっているため、間違いや勘違いがあるかと思います。その点、ご了承いただければ幸いです。同時に間違いや勘違いを発見された方は、メールや掲示板でご指摘いただけると、すごく嬉しいです。 【参考書籍】 紀平拓男、春日伸弥 『プログラミングの宝箱 アルゴリズムとデータ構造』(ソフトバンク パブリッシング 2003) 参考URL:http://www.cmagazine.jp/books/takarabako/
奥村晴彦さんの「C言語による最新アルゴリズム事典」技術評論社、1991年、の C 言語プログラムの Ruby への翻訳に挑戦します。プログラムの説明は同書を読んでください。変換はできるだけ逐語的に行っています。プログラムの動作は原作の C プログラムのそれと比較してチェックしていますが、うまく動作しないときは C から Ruby への変換のさいに起きたものです。バグレポートは tnomura@mnet.ne.jp までお願いします。 この Ruby 翻訳版はできるだけレイアウトも含めて原作の C プログラムを変更しないようにしたため、必ずしもRuby らしいコーディングスタイルとは言えないかもしれませんが、プログラムがきちんと動作することを優先しました。C から Ruby への翻訳の著作権に関しては Ruby のライセンスに準じます。配布、改変は自由です。ただし、プログラム本体には原作者の
実験的ではあるにせよ、現状ではRubyのコード補完はid:rubikitchさんのrcodetoolsでなんとか対応できています。が、次のような(大きな)問題をかかえています。ちなみにここでいうrcodetoolsの問題というのは補完機能のことで、xmpfilterとかは全然関係ないことを留意してください。 rcodetoolsの問題点 rcodetoolsは、補完を得るために裏で編集中のRubyコードを実行するようです。実際にRubyコードを実行するので、補完ポイントに処理が到達できる場合は補完精度は100%になります。しかしこの方法には二つの問題があります。 一つは、補完ポイントに処理が到達できない場合は補完精度が0%に等しくなるという問題です。もう一つの問題はRubyコードの実行に時間がかかる場合に、それと同等の時間をEmacsが待つことになるという問題です。後者の問題は特に深刻で、
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はじめに 最近自分の中でScalaという言語が熱い。RubyやPython等のスクリプト言語や、JavaやC#等現在のエンタープライズ領域を支える言語、HaskellやErlangといった関数型言語もある。そんなにいっぱいいい言語がある中で、なぜ今Scalaなんだろう? そんな理由を解説してみたいと思います。Rubyの生産性 ここ数年LLブームで、とりわけ日本でのRuby人気は目覚ましいものがあります。実は筆者もRubyはとてもお気に入りです。最初に触り始めた頃は、「Rubyはいいよ」という話だったので勉強がてら小さなサンプルを作って遊んでいたのですが、その頃は「楽しいな」「気持ちいい言語だな」という程度であまり熱心にやっていませんでした。なぜなら私は「仕事で使える」ということを非常に重視するタイプだからです。 その認識が一変したのがRubyによるWebアプリケーション開発のプラットフォー
最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めの本です。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く