タグ

ブックマーク / mametter.hatenablog.com (5)

  • Rubyと型についてのポエム - まめめも

    zenn.dev matz はじめコミッターの型に対する姿勢にも疑問を持っています。 というご意見が自分に刺さった気がしたので、他の話題はともかくこの点に関してだけ、ポエムを書きます。 「Rubyに型が欲しい」というのは、「もっと速い馬が欲しい」だと思っています。意味を知らない人は ヘンリー・フォード もっと速い馬が欲しい で検索してください。 これは批判でも皮肉でもありません。みんなが馬の乗り方を知っている世界では、誰も乗り方を知らない自動車より、速い馬のほうが確実で合理的です。まして、自動車が当に実現できるかどうかわからない段階では。なので、他言語で型注釈を書くことによるプログラミング体験が良いと思った人が、それをRubyでも享受したいと思うのは自然だと思います。実際、Steep や Sorbet は Ruby でそういうプログラミング体験を提供することを目指していて、すでにある程度

    Rubyと型についてのポエム - まめめも
  • パイプライン演算子の歴史 - まめめも

    (You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process

    パイプライン演算子の歴史 - まめめも
  • [Ruby] Ruby 3.0 の特大の非互換について - まめめも

    タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m

    [Ruby] Ruby 3.0 の特大の非互換について - まめめも
  • 書籍『あなたの知らない超絶技巧プログラミングの世界』が 9 月 25 日に発売されます - まめめも

    以前告知していた書籍が、無事発売されることになりました!(技術評論社の公式ページ) アフィリエイト あなたの知らない超絶技巧プログラミングの世界posted with amazlet at 15.09.01遠藤 侑介 技術評論社 売り上げランキング: 3,000 Amazon.co.jpで詳細を見る どんな? テーマは「役に立たないプログラミングを楽しもう」です。言葉で説明するよりプログラム例を見た方が分かりやすいと思うので、代表的な過去作品にリンクしておきます。 Qlobe: アスキーアートの地球が回るプログラム Quine リレー: 100 のプログラミング言語を経由して自分自身を出力するプログラム ASCII Fluid: 80x25 の画面に収まる流体シミュレータ (動画) Merry Quine-mas 2010: 音楽再生しながら雪のアニメーションを行う自己出力プログラム (

    書籍『あなたの知らない超絶技巧プログラミングの世界』が 9 月 25 日に発売されます - まめめも
  • Quine ruBy - まめめも

    略して QB 。 eval s||= %q(1;t= %w(s.gs ub!(/\e.* ?m/,"");[ [ 0x26e885c a844a879e27 a,519,48, 5 , 9],[20182686,600,48,5,1],[4366,611,48 , 5 ,15],[432803624050570,533,0]].map { | r,m,*d|s[m+=r%74,0],r="\e[#{d*";"}m", r /74while(r>0)};puts((z=32.chr)*5+"eval#{z *39}s||=\n#{z*5}%q(#{(1+n=s.to_i)%3}#{s[1 ..- 1]})\n\n"+z*9*n+"5YOV44GvUnVieWlzdO OBq +OB quOBo+OBpuOBj+OCjOOBo+OBpuOAgeOBjeOBo eOC k+OB qOOBi um

    Quine ruBy - まめめも
    shirokurostone
    shirokurostone 2011/04/13
    これはすごい
  • 1