タグ

scalaとfunctionalに関するmanabouのブックマーク (5)

  • Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD

    (編注:2016/7/27、頂いたフィードバックを元に記事を修正いたしました。) 学生たちから、次に学ぶ言語はどれがいいのかとよく聞かれます。IT業界で働きたい人にお薦めするのは、現在盛んに使われている言語です。C++Java、C#はもちろん、PythonRubyPHPPerlなども挙げられるでしょう。 一方、向学のためという人や、学術研究や起業に関心がある人にとって、次の言語を選ぶ基準となるのは、就職に有利かではなく言語の表現力でしょう。学術研究や起業活動を行うには、プログラマとしての能力を何倍にも高める必要があります。そして、(おそらく)確立されたコードベースを扱った経験はないでしょうから、手元にあるタスクにとって最適な言語を自由に選ぶことができます。 この記事では、勉強に適したHaskell、Scala、ML、Schemeという4つの言語を、私の好きな特徴や参考資料のリストと

    Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD
  • 【Scala】foldLeftとfoldRightのしくみ | DevelopersIO

    利用方法はとても簡単で、カリー化された第一引数にアキュームレータの初期値を渡し、第二引数に関数を渡します。 List(1, 2, 3, 4).foldLeft(0) { (acc, x) => acc + x } // -> 10 "abcd".foldRight(Nil : List[Int]) { (x, acc) => x :: acc } // -> List(97, 98, 99, 100) コレクションAPIに定義されているほとんどのメソッドは、 foldLeft か foldRight を用いて実装することができます。上記の foldLeft のコード例などは、 sum (総和) 関数そのものですね。 さて、それぞれの特徴を比較すると真っ先に目につくのが、foldLeft はスタックセーフな高階関数で、foldRight はそうではない、という点だと思います。それじゃあ、 f

    【Scala】foldLeftとfoldRightのしくみ | DevelopersIO
  • Scalaにおける関数型並列並行プログラミング

    class: center, middle # Scalaにおける<br>関数型並列並行<br>プログラミング [![クリエイティブ・コモンズ・ライセンス](http://i.creativecommons.org/l/by/2.1/jp/88x31.png)](http://creativecommons.org/licenses/by/2.1/jp/) --- class: middle <img src="image/xuwei.gif" alt="アイコン" width="100" height="100" /> - twitter [@xuwei_k](https://twitter.com/xuwei_k) - github [@xuwei-k](https://github.com/xuwei-k) - blog <http://xuwei-k.hatenablog.com>

  • 最近読んだ論文 - xuwei-k's blog

    以下のtweetしたように、最近それなりに、(主にHaskell関連の)論文読んでるのだけれど 最近、論文読むの楽しいと思うことがそれなりにあるけど、いや楽しいとかじゃなく無意識に時間があればずっと論文読み続けてるのが当たり前の状態にならないとだめだ。って自身に言い聞かせようとし出すような変な意識の高まり方してる 2015-07-18 02:30:31 via Twitter Web Client 一回読んだだけではすべてを理解できるわけでもないし、「うまく日語に要約して紹介」ですら結構頑張らないとできる気がしないけど、それなりに読んでるのを、とりあえず一覧でまとめておこうと思った次第。 昔は論文なんて全然読む習慣なかったし、読もうとしても(英語力と前提知識の問題で)全然読めなかったけど、少しでも読めるようになってくると楽しいですね。 あと「読んだ」というのは、 最初に読んだのは結構昔だ

    最近読んだ論文 - xuwei-k's blog
  • 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ

    はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje

    圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ
  • 1