タグ

rubyとprogrammingに関するHashのブックマーク (66)

  • RubyにおけるシーケンスはObject#repeatに任せなさい!

    Rubyにおいてシーケンス、つまり意味的に連続する要素の並びを簡単に生成するObject#repeatというものを考えましたよ!以前に考えたEnumerable#repeatを単にすべてのオブジェクトに拡張したものですけど。 class Object def repeat(init=true, &blk) x = self Enumerator.new do |y| y << x if init loop { y << (x = yield x) } end end end repeatは、そのレシーバオブジェクトを初期値として、渡されたブロックを繰り返し適用します。適用の結果はEnumeratorオブジェクトでラップされているので、遅延評価されます。 以下に、問題に答える形で使い方を見せますね。比較のためrepeatを使わない方法も適宜示します。 1. 初項1、公差2の等差数列の最初の2

    RubyにおけるシーケンスはObject#repeatに任せなさい!
  • rocco.rb

    Rocco is a Ruby port of Docco, the quick-and-dirty, hundred-line-long, literate-programming-style documentation generator. Rocco reads Ruby source files and produces annotated source documentation in HTML format. Comments are formatted with Markdown and presented alongside syntax highlighted code so as to give an annotation effect. This page is the result of running Rocco against its own source fi

  • MacRuby 道場

    目次 Apr 14th, 2012 入門編 MacRuby の環境を構築しよう 新規プロジェクトをつくってみよう ストップウォッチを作る ストップウォッチを作る (Thread 編) Window のリサイズに対応しよう アイコンを変更しよう Deployment …

    Hash
    Hash 2012/06/26
    これ勉強したい
  • [ruby-dev:17727] Re: self in block

    Subject: [ruby-dev:17727] Re: self in block From: Minero Aoki <aamine@ . i n j Date: Sat, 20 Jul 2002 15:02:10 +0900 References: 17719 In-reply-to: 17719 あおきです。 In mail "[ruby-dev:17719] Re: self in block" masaki <GEC01122 / nifty.ne.jp> wrote: > 正木です。 > > すみません、「self が不定」という点がさっぱりわかりません。self > initialize の code を書いている時点では不定と言う意味です。勿論呼ばれた > 時点での context で self は決まります。 > Sequence の設計を色々試していた時の test

  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
    Hash
    Hash 2012/06/20
    動的言語...?
  • irbから学ぶRubyの並列処理 ~ forkからWebSocketまで

    (追記:2012-12-13) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、文体の変更、誤記の修正およびメディア向けの調整を行っています。 電子書籍「irbから学ぶRubyの並列処理 ~ forkからWebSocketまで」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍「irbから学ぶRubyの並列処理 ~ forkからWebSocketまで」EPUB版をGumroad

    Hash
    Hash 2012/06/12
    irbやgosh, gchiなどの対話的実行環境 = Read Eval Print Loop. その名の通り. loop{puts eval gets}で基本的な動きをエミュレートできる。あとこれをforkしたりごにょごにょ。すげーわかりやすい
  • http://doruby.kbmj.com/shibalog/20090826/Code_Golf_

    Hash
    Hash 2012/06/10
    変態的だ
  • Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも

    Ruby 2.0.0 のリリースに向けた活動について、毎週くらいのペースで書きたいなあと思ったので始めます。飽きたらやめます。 ユーザ視点で面白そうな機能や、リリースに向けた進捗について書くつもりです。コミット単位の詳しいニュースは nagachika さんの ruby-trunk-changes を見るといいです。 Ruby 2.0 について Ruby 1.8 、1.9 に続く Ruby の新系統です。 新系統といっても、RubyKaigi 2010 の開発者会議にて、まつもとさんから「100% 互換」のスローガンが発表されていますので、原則として仕様変更は入らない予定です。*1 今のところ 2.0 に入ることが発表されている大きめの新機能は、 Module#prepend キーワード引数 の 2 点です。[ruby-core:39837] それぞれの詳細は、そのうち説明したいと思います

    Ruby 2.0 リリース週記 (2012/05/14 - 20) - まめめも
    Hash
    Hash 2012/05/23
    「簡単に言えば、JavaScript の代わりに Ruby を使えるようになる」!! 楽しみすぎる!
  • Rubyで関数プログラミング 【目次】

    このページでは、Rubyを使って、関数プログラミングを行ってみたいと思います。 Rubyは、よくいわれるように命令型言語の発展形たるオブジェクト指向型言語ですので、関数プログラミングを行うのに適した言語ではありません。しかし、全く関数プログラミングの特徴を伝えることができないわけではありません。それに必要ないくつかの機能を備えていると思います。従って、Rubyで関数プログラミングを行うことにより、関数プログラミングへのイントロダクションにしてみたいと思っています。 念の為言っておきますが、私はRubyをよく知りません。しかし、動的束縛のオブジェクト指向言語ということなので、その言語構成は、型システム以外はメジャーな多目的言語(C++,Object Pascal等)とそう変わらないと思います。というか、完全にそういう前提で話をします。 因みに、参考資料は、言語仕様に関するヘルプ、オライ

    Hash
    Hash 2012/04/16
    この記事面白い。SICPでなんとなく再帰してたけどRubyの日常的なコードと比較されるとなるほどと思う
  • 知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRubyの記法を 21個拾ってみたよ(Ruby1.9限定) 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺に クラス定数だけでなくクラスを返す式が書けるよ class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh

    知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby - hp12c
    Hash
    Hash 2012/03/29
    おもしろい。
  • Primer

    🎉 👀 New look, same Primer! Preview the new docs experience here and let us know what you think. Primer Design SystemPrimer is a set of guidelines, principles, and patterns for designing and building UI at GitHub.

    Primer
    Hash
    Hash 2012/03/22
    これは素敵
  • Rubyist が今すぐ Elixir を使ってみるべき理由 - m.igrs.jp

    Elixir の読み方は多分「エリクサー」。RPGゲームのアイテムにありそうな名前だ。 個人的には「エリクシール」と読みたいところだが多分「エリクサー」で良いだろう。 Elixir は最近になって開発が活発化しており、公式サイトも最近立ち上げられたようだ。 http://elixir-lang.org/ つい先週のことだが Github でも公式にサポートされている。 Elixir is officially supported on Github! Including file identification and syntax highlight: github.com/languages/Elix… — Elixir Lang (@elixirlang) March 5, 2012 ここにきて盛り上がってきた感があるので、作者である José Valim が約1年前に書いた Why

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    Hash
    Hash 2012/03/07
    parallelというらいぶらり。
  • GitHub - pry/pry: A runtime developer console and IRB alternative with powerful introspection capabilities.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - pry/pry: A runtime developer console and IRB alternative with powerful introspection capabilities.
    Hash
    Hash 2011/10/28
    Rubyをいじるならirbの代わりにpryを使うことをオススメします
  • モジュールの特異メソッドをincludeして使う(修正) - Aerialarts

    以前の記事が恐ろしく分かりにくいので、軽くまとめ直す。 module A def instance_method_of_a puts "A#instance_method_of_a was called." end module ClassMethods # A::ClassMethodsで定義されたインスタンスメソッドは、 # Aをincludeしたクラスのクラスメソッドとして利用できる def class_method_of_a puts "A::ClassMethods.class_method_of_a was called. Not A.a_class_method!" end end def self.included(mod) # ModuleのインスタンスmodがAをincludeした際に呼び出され、 # A::ClassMethodsのインスタンスメソッドをmodに特異メ

  • 極めるメソッド

    $Id: method.rd,v 1.4 2003/06/18 23:28:28 aamine Exp $ 極めるシリーズその 2、メソッド使いこなしちゃうぜ講座。 メソッド定義のきほん よいこのみなさんは知ってるとおり Ruby では def method_name( arg, arg, opt_arg = default, *rest_args, &block_arg ) 内容… end でメソッドが定義できる。メソッドとは何か? 関数とは違うのか。 まあ、似たようなもんだと思ってもいいと思う。 オブジェクト指向教条主義の人なら怒るだろうけど、 実際使う時は理論なんてどうでもいいのだ。 動作を理解した後に呼び方がふさわしくないと思うようになったら それから変えればいいんじゃない? で内容だが、opt_arg は省略可能な引数。 rest_args も書かなくていいって点では省略可能だが

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • EventMachine: 高速でスケーラブルなEvent-Driven I/Oフレームワーク

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    EventMachine: 高速でスケーラブルなEvent-Driven I/Oフレームワーク
  • Ruby 1.9 のSymbol#to_procと(入ったばかりの)Procのカリー化

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Ruby 1.9 のSymbol#to_procと(入ったばかりの)Procのカリー化
    Hash
    Hash 2011/06/29
    &演算子が内部的にSymbolオブジェクトに対してto_procを呼び出し、to_procは渡されたobjectに対して.sendするProcを生成すると...。なんだこの黒魔術
  • Rubyでメタプログラミング 〜暗黙的に呼ばれるto_procメソッド - (゚∀゚)o彡 sasata299's blog

    2011年01月08日23:09 Ruby Rubyでメタプログラミング 〜暗黙的に呼ばれるto_procメソッド 先日、こんな感じの処理に遭遇しました。はて、、何じゃこりゃ・・(´・ω・`) ポカーン (1..5).each(&method(:puts)) と思って調べたのでまとめておきます。この処理が理解できれば一人前です。きっと。 ブロックはオブジェクトではない Ruby では大抵のものがオブジェクトですが、オブジェクトではないものも一部あります。ブロックがその一つです。 例えばこんな風にブロックを定義することは出来ません。 block = { "test" } # in:1: odd number list for Hash そもそも Ruby の構文ではハッシュとして扱われるためブロックを直接生成することは出来ません。Block.new みたいな構文も無いので、ブロックは ti

    Hash
    Hash 2011/06/29
    ブロックはobjectじゃないから、object化するために内部的にSymbol#to_procを呼んでるのが&演算子か。