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

  • 書籍のサンプルコードと違う言語で写経することの意義 - kmizuの日記

    こんばんは、みずしまです。最近は主に強化学習の勉強をしているのですが、読み進めていく過程で少し悩みの種がありました。それは、サンプルコードの扱いです。サンプルコードはPythonで書かれていて、実際に書き写すことが私にとって理解の助けになるのは確かなように思えましたが、一方で過去の経験から、そのまま写経すると「スルスルと動いてしまってフィードバックとして不十分そうだな」と感じたので、Scalaで書いてみることにしました。 別にScalaでなくて、JavaでもRubyでもあるいはJuliaでも良かったのですがそれはともかくとして、元のサンプルコードと違う言語で書くことで得られる利点も結構あるものだなというのが正直に感じた点です。たとえば、np.mean(...)というコードが書籍では出て来るわけですが、「そういえばScalaでmeanと同じことをするにはどうしたらいいんだっけ?」と考えること

    書籍のサンプルコードと違う言語で写経することの意義 - kmizuの日記
    t_f_m
    t_f_m 2022/03/12
  • Scalaに関する誤解と事実を語る - kmizuの日記

    TL;DR 世間のScalaに関するイメージは、昔のままであることが多い 昔のままどころか、最初から間違ったイメージを持たれていることも多い 実際には、既に解決されている問題は多々あるし、改善に向かっていることも多い プロジェクト管理の問題を言語に押し付けているケースもある はじめに 自分が最初にScalaに触れたのが2005年(Scala 1からカウントした場合)、あるいは2007年(Scala 2以降からカウントした場合)と、Scalaとの付き合いも結構長くなってきましたが、その間に Typesafe社(現Lightbend社)の設立 実質標準ビルドツールとしてのsbtの確立 ライブラリのバイナリ後方互換性に関するポリシーの策定 公式ScalaイベントScala Daysのはじまり Play 2 Frameworkの登場 Scala Center発足 その他色々 がありました。この間、

    Scalaに関する誤解と事実を語る - kmizuの日記
    t_f_m
    t_f_m 2017/05/08
  • 正規表現のようでそうでない文字列マッチングライブラリ PEGEX 0.3リリース - kmizuの日記

    PEGEXを開発し始めたのが確か2010年の春頃でした。元々は、私の専門であるPEGに対してより正規表現ライクな記法をサポートしたものでした。それから6年、現在は既にPEGのセマンティクスはほとんど残っておらず、(おそらく)全ての文脈自由言語を扱えるような強力なマッチングツールに進化しました。 たとえば、PEGEXで、任意階層ネスト可能で、しかも開始タグと閉じタグが一致しているXMLのような文法、というのは次のようにして記述することができます。 #{E}$; E=<(?<tag>#{I})>#{E}*</\k<tag>>; I=[a-z]+; 実は、たとえば、Rubyの正規表現は既に古典的な意味での正規表現を超えており、再帰呼出しによってこのような文法を表現することができます。ただ、正規表現の記法に無理やり拡張を入れたため、正規表現を超えた部分についてはあまり可読性が良いとは言えません。P

    正規表現のようでそうでない文字列マッチングライブラリ PEGEX 0.3リリース - kmizuの日記
    t_f_m
    t_f_m 2017/03/23
    "(おそらく)全ての文脈自由言語を扱えるような強力なマッチングツール"
  • TwitterはScalaを捨ててません(少なくとも現在は) - kmizuの日記

    なんだかTwitterの一部で www.utali.io の記事が話題になってるようですが、はっきり言って誤情報です(というか、何故そんな誤解をしたのか知りたいくらい)。根拠はいくつかありますが Twitterは最近(ここ数ヶ月)にScala CenterのAdvisory Boardにjoinしている 置換えたとされるFinagleのコミットが最近でも活発である そもそも引用元ツイートで一言も、Scalaを捨てたに相当する表現が見られない 1についてですが、Scala作者のMartin Odersky先生が Odersky先生も参戦してる。"For what it's worth Twitter just joined the Scala Center advisory board as a full member. Don't believe the FUD."— 水島宏太(ゆる糖質制

    TwitterはScalaを捨ててません(少なくとも現在は) - kmizuの日記
    t_f_m
    t_f_m 2017/03/23
  • カリー化 != 部分適用 - kmizuの日記

    最近、ネット上でカリー化に関する記事を読んでいると、特にGroovy界隈でカリー化に関して誤解がまかり通っているようなので(特に実用的なGroovy: カレー化クロージャーによるファンクショナル・プログラミングはひどい。そもそも、Groovyの標準ライブラリ自体がカリー化を行うための関数ではないものにcurryとか付けてるから仕方無いのかもしれんが)、一言言っておく。 カリー化というのは、Groovyで言うと、 def add = {x, y -> x + y} のように、xとyという複数の引数を取って値を返す関数を def add = {x -> {y -> x + y}} //間違ってパースできないコードになっていたので修正(12/17) のように、一つの引数xをとって、「yを引数にとって値を返す関数」を値として返すような関数に変換すること、あるいは最初からそのように表現することを言う

    カリー化 != 部分適用 - kmizuの日記
    t_f_m
    t_f_m 2013/05/24
    部分適用は束縛
  • 1