タグ

ブックマーク / melborne.github.io (3)

  • Rubyのバグだと思ったら自分がバグだった ─ Enumerator解説編 ─

    前の記事に対する回答がどこからも得られなかったので(当り前だ)、記事を書き直して自分で回答・解説してみます(泣) Rubyのバグだと思ったら自分がバグだった ─ Enumerator編 ─ 一見問題無さそうな以下のコードにはバグがあります。 def step(init, step=1) Enumerator.new do |y| loop { y << init; init += step } end end odd = step(1, 2) odd.next # => 1 odd.next # => 3 odd.next # => 5

    daaaaaai
    daaaaaai 2021/09/15
    へー
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

  • SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ!

    Sinatraのサイトを開くとSinatraはDSLだと書いてある。 Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort: (SinatraはRubyで手早くWebアプリケーションをつくるためのDSLです) DSLというのはDomain-Specific Language、つまり特定の目的に特化した言語のことだ。確かにSinatraはWebアプリケーションという特定の目的のために作られたものだけれども、それは言語じゃない。 それが言語といえるためにはオブジェクトのように独立していて閉じてなきゃいけない1。でもSinatraは独立も閉じてもなくて、Rubyに寄生することで存在している。 いやSinatraは言語どころか、Rubyの上の専門用語ですらない。 それが用語といえるために

    daaaaaai
    daaaaaai 2014/03/20
    sinatraやるじゃん
  • 1