タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

scalaに関するocsのブックマーク (3)

  • 再帰関数には @tailrec アノテーションを - イトウ アスカ blog

    Scala東北のMLに流れてきた記事です。後で読み返し易いようにここにもメモしておきます。 非関数型言語に慣れ親しんだ身としては、「while使わないで再帰関数使えよ」という関数型言語のスタンスを見ると真っ先に思いつくのが「言いたいことはわかるが、でかいループ回したらスタックオーバーフローするべ」ということです。 しかし、Scalaをはじめとする関数型言語ではコンパイル時に再帰関数を最適化してスタックを使わないループ等にしてくれるそうでこの心配はないとのこと。ただし、これには条件があってScalaの場合 自分自身を呼ぶ末尾再帰関数であること 再帰関数が、オーバーライドされる可能性のないメソッドであること。つまりメソッドを定義するクラスが final であるかメソッド自体が final、あるいは private であること 末尾再帰関数というのは関数の最後の処理が再帰呼び出しになっているよう

    再帰関数には @tailrec アノテーションを - イトウ アスカ blog
    ocs
    ocs 2009/10/14
  • Scala とよくあう Web アプリケーションフレームワークは? - イトウ アスカ blog

    Lift だろ常考。 なのでしょうか? Lift は Scala で作られているってだけで、そんなにいいものなのでしょうか? まだ駆け出しの私としては Lift は奇をてらいすぎてる感じがしてなりません(ORMは結構好きかも) ということで、Java の Web アプリケーションフレームワークを使いまわすのはどうだろうかと考えました。 まず、Java Beans 仕様を多様するのは多少使い辛い印象があります。なぜならば、フィールドに scala.reflect.BeanProperty アノテーションをつけなければならないからです。これはちょっと手間です。なのでみんな大好き Cubby もこれにひっかかります。みんな大好き Struts もです。POJO にこだわるフレームワークはことごとく引っかかりますね。そもそも JSP がひっかかります。 じゃあ何がいいかというと Wicket です

    Scala とよくあう Web アプリケーションフレームワークは? - イトウ アスカ blog
  • inforno :: Scalaでスタック指向言語をサクッと実装する

    Scalaにはご存知のとおり scala.util.parsing.combinator というパーサコンビネータライブラリがある。さらには scala.util.parsing.ast というのもあるわけだけど、これは激しく開発中な感じ。Scalaはバージョンがあがるとこういう開発中ライブラリはごそっと変わったりするので今はおいておく。ちなみに、2.7.1では前のパーサコンビネータは scala.util.parsing.combinatorold といういかにも使いたくない名前にされてしまった。 パーサコンビネータといえば言語処理系だ(そうか?)。というわけで scala.util.parsing.ast は置いておいて、とりあえずASTについてほとんど考える必要がない、簡単なスタック指向言語を実装してみることにする。実行はScala 2.7.1.finalで。 スタック指向言語とは

    ocs
    ocs 2008/05/19
  • 1