タグ

scalaに関するc255のブックマーク (4)

  • Scalaでハードウェアを書く - wasabizの日記

    2015-07-08 Scalaでハードウェアを書く Scalaでハードウェアを書けるChiselについて紹介します。 Chisel: Constructing Hardware in an Scala Embedded Language Chisel 2.2.0 Manual Chiselとは Chiselとはハードウェア記述用のためのライブラリでありScalaのDSLとして実装されています。最近巷で話題のRISC-Vというアーキテクチャがありますが、その実装であるRocket CoreがChiselで記述されています。Chiselは単なるScalaのライブラリなので、.scalaなファイルの中でimportして使います。そして回路の仕様をScalaで記述してコンパイルするとその仕様に従ったVerilogを出力する実行ファイルが出来ます。以下のコードはChiselのトップページから引用し

    Scalaでハードウェアを書く - wasabizの日記
    c255
    c255 2015/07/09
    もう少し早く欲しかった…
  • (もりそば)Scalaによる高階型変数 - Higher-kind Generics - ( ꒪⌓꒪) ゆるよろ日記

    「ハイヤーーーーーッッ!!!」 と気合いを入れたところで、今日はScalaのコレクションライブラリで多用されている、Higher kind genericsについて軽く解説したいと思いハイヤーーーーーッッ!!! Higher-kind Generics(type constructor parameter)って? まぁぶっちゃけ@kmizu が解説してくれてるのでコレ読んでもらえばおけです。 ScalaのHigher-kind Genericsについて - Togetter そういえば最近Javaでもid:Nagiseによるこんな話がありましたね。 Javaによる高階型変数の実装 - プログラマーの脳みそ Java による高階型変数と Scala とジェネリクス - Togetter 要は、型パラメータを取る型パラメータ(?)が使えるよって話。 trait AttrHelper[+Hold

    (もりそば)Scalaによる高階型変数 - Higher-kind Generics - ( ꒪⌓꒪) ゆるよろ日記
    c255
    c255 2013/08/08
  • 関数を扱えるだけでは、モナドを表現するには不十分過ぎる - xuwei-k's blog

    つまりなぜかいきなり高階型の話です。 これ 関数を扱えることはどのようにプログラミング言語の能力をあげるか に対する便乗というかツッコミとして。 つい先日もある人がこんなこと https://twitter.com/koropicot/status/365014333413011457 を言っていて*1、「ですよねー」と勝手に納得していたりしましたが。 つまりScalazでよくみるような高階型 trait Monad[F[_]] extends Applicative[F] { implicit val listMonad = new Monad[List]{ がないと、モナドとして抽象化や共通化ができない、という話です。*2 高階型についてはたとえばこれ (もりそば)Scalaによる高階型変数 - Higher-kind Generics とか読んでください。 関数がオブジェクトとして扱

    関数を扱えるだけでは、モナドを表現するには不十分過ぎる - xuwei-k's blog
  • モナドはメタファーではない · eed3si9n

    2011-05-28 Scala界の関数型プログラミング一派を代表する論客の一人、@djspiewak が 2010年に書いた “Monads Are Not Metaphors” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2010年12月27日 Daniel Spiewak 著 2011年5月29日 e.e d3si9n 訳 僕は今、約束を破るところだ。およそ三年前、僕は絶対にモナドの記事だけは書かないと自分に約束した。既にモナドに関する記事は有り余っている。記事の数が多すぎてその多さだけで多くの人は混乱している。しかも全員がモナドに対して異なる扱い方をしているため、モナドの概念を初めて学ぼうとする者は、ブリトー、宇宙服、象、砂漠のベドウィン (訳注: アラブ系遊牧民) の共通項を探す努力をするハメになっている。 僕は、この混乱した

  • 1