タグ

haskellとscalaに関するigrepのブックマーク (13)

  • 経験5年のHaskellユーザがScalaを仕事で半年使ってみた

    haskell-scala-java ちょっと前までScalaを書いていたので、 Haskell好きな人がScalaを書いた感想を書きます。 タイトルは経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blogの模倣です。 あくまで1ユーザの感想です。 Scalaに慣れてしまうと違和感を忘れてしまうと思ったので、当時箇条書きで雑にメモしていたものを参照して書いています。 逆にScala使いがHaskellを知るメモに役立つかもしれません。 Haskell歴 when: 2013年から知って学び始めましたが、格的に使い始めたのは2015年からで、5年ほど使っています where: どの言語を使っても良くて新しい言語を学ぶ必要がなければ基的にHaskellを使っています what: 趣味OSSプロジェクトの大半 現在一番スターもらっ

    経験5年のHaskellユーザがScalaを仕事で半年使ってみた
  • 不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita

    諸般の理由で『Pythonlambda式を用いたラムダ計算の基礎表現』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータfixがとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした. このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎. 不動点コンビネータの定義 不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称であるfixを不動点コンビネータの関数名とする. Haske

    不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita
  • Freer doesn’t come for free

    The question on how to best structure functional programming applications in either Haskell or Scala is still out with various ways to achieve modularity, encapsulation and testability. In the past I have been an advocate of the `Eff` monad, based on Oleg Kiselyov’s work on “Freer monads, more extensible effects”. However, after being involved with 2 large applications (both in Scala and Haskell)

    igrep
    igrep 2019/02/22
    Freer Monadは止めた方がいいという話。途中までしか読んでないけど大体自分と同意見っぽい。これからはcapabilityもあるしなぁ。
  • 継承によらないポリモーフィズム実現手法 - Qiita

    ポリモーフィズム(polymorphism; 多態, 多相)」というとオブジェクト指向プログラミングにおける継承(インターフェースの継承)による実現手法がよく知られている。 しかし、ポリモーフィズムを実現するための手法はオブジェクト指向的な型階層によるものに限らず様々なものがある。 ここでは、Expression Problemに対する解決策として挙げられる、継承によらないポリモーフィズムの代表的な実現手法として、 型クラス(type class) プロトコル(protocol) マルチメソッド(multimethod) による実装を複数言語で試してみた。 いずれの方法も明示的な継承関係を必要とせず、拡張に対して開いているため、既存の型(例えば言語組み込み型)に対しても容易に拡張可能なことが特徴的で、ある種のインターフェース定義に対する実装を追加することで、いつでも適用範囲を拡大できる。

    継承によらないポリモーフィズム実現手法 - Qiita
  • Haskell + Scala ハイブリッド開発大作戦 - ScalaMatsuri 2018

    Haskell + Scala ハイブリッド開発大作戦 セッションでは、JVM 用 Haskell である Eta を利用して、Haskell/Scala 間のシームレスな連携を実現する技法を解説します。 Eta はモダンな Haskell コードに対してほぼ完璧な互換性を担保する一方、意味論として異質な Scala/Java ライブラリの呼び出しを巧妙にサポートしています。またコンパイル結果は JVM バイトコードになり、Scala プロジェクトの内側に Haskell 部分を組み込むことも容易です。まさに、それぞれの言語の「いいとこ取り」にうってつけだと言えるでしょう。 内容としては、Haskell の初歩から始めて、Haskell/Scala 間の相互呼び出しの仕組みや、実際のハイブリッドプロジェクトの構成を解説する予定です。予備知識は仮定しませんので、「Haskell ってなんか

  • 新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道|ハイクラス転職・求人情報サイト AMBI(アンビ)

    新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道 「若手エンジニア、どんな活躍してますか?」の第7回目は、はてなが手がける、サーバー監視サービス「Mackerel」の開発エンジニアにお話を聞きました。リモートでありながら、抜群の存在感を発揮する先輩の背中を、超優秀な後輩はいかにして追いかけたのでしょうか。 はてなといえば、ブログサービス、ソーシャルブックマークサービスを展開する企業として知られていますが、サーバー監視サービス「Mackerel」も主力プロダクトのひとつ。今回お話を伺ったお2人も、Mackerelの開発メンバーです。そのうちの一人、2017年4月にMackerelのテックリードになったばかりの濵田さんは2015年入社の若手。愛知からリモートで働く、前テックリードの辻川さんの背中を、ディスプレイ越しに見ながら実績を積み上げてきました。 はてな

    新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道|ハイクラス転職・求人情報サイト AMBI(アンビ)
    igrep
    igrep 2017/06/07
    キャーitchynyサン カッコイイー!
  • GitHub - atemerev/skynet: Skynet 1M threads microbenchmark

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - atemerev/skynet: Skynet 1M threads microbenchmark
    igrep
    igrep 2016/02/16
    いろんな言語でCoroutinesとかの生成タイムを比較した結果。単純に比較できるか?という疑問はある。(だってHaskellの軽量スレッドならもっと速く作れるはずだし...)
  • 2015年を振り返って - プログラムモグモグ

    今年は働き始めた年でした。環境が大きく変わりました。新しい環境は毎日刺激が多く、とても楽しく過ごしています。 入社してちょうど三か月した時、自分にとってとても大きなことが起こりました。ある仕事を与えられたのですが、その解決したい問題に対するアプローチを自ら考えて、自発的に編み出した解決法によって問題を解決したのです。入社してまだ間もないひよっこのような自分が、自らの能力を活かしてプロダクトに貢献できたことで、とても自信がつきましたし、この会社で自分が役に立っていけそうという安心感もありました。この成果によって社内の人からも評価していただき、とても嬉しく思いました。 今年はブログは28記事書きました。特に以下の記事は、多くの方々から反応をいただきとても感謝しています。 itchyny.hatenablog.com itchyny.hatenablog.com itchyny.hatenabl

    2015年を振り返って - プログラムモグモグ
    igrep
    igrep 2016/01/01
    “便利ソフトウェアを作った→実はHaskell製でしたというストーリーが好きなので、今後もそういうエントリーが出てくるかもしれません。”
  • Lens&Prism勉強会 私的まとめ :: Igreque -> Info

    Lens&Prism勉強会 私的まとめ by Yuji Yamamoto on June 9, 2015 もう開催から1週間以上経ってしまいましたが、Lens&Prism勉強会に行ってきたのでそのまとめ記事です。 当日しこしことっていたメモと記憶を頼りに、発表内容や個人的な気付きなどを書きます。 @gakuzzzzさんの「Lensの説明」 connpassには別のスライドが貼ってありますが、実際の中身はBeyond Scala Lensというスライドの日語での解説でした。 要約するとこんな感じの表に収まるのですかね。 スライドではScalaでの呼び名で説明されてましたが、ここでは私向けにHaskellに訳しています。 -- 全てのsをaに変換でき、かつ全てのaをsに変換できる関数のペア Iso' s a: f :: s -> a, g :: a -> s -- 全てのsからaに変換できる

    igrep
    igrep 2015/06/09
    今更だけど書きました! #LensPrism
  • リスト(シーケンス)用高階関数対応表

    シート1 言語や関数はてきとうに追加してくださいね。,Ruby 1.9.0,C# 4 (LINQ),Python,Haskell,Scala,F#,C++,C++,Java 8 (Stream) ↓この列は備考欄ということにしたい。,Rubyのyieldは内部列挙方式,LINQ (遅延評価),For Comprehension (遅延評価),Seq (遅延評価),Boost.Range (遅延評価),PStade.Oven (遅延評価),Stream (遅延評価) all?,All,all,forall,forall,all,forall,allMatch any?,Any,any,e...

    リスト(シーケンス)用高階関数対応表
  • いわゆるscanl関数をRubyで書いてみる - ( ꒪⌓꒪) ゆるよろ日記

    scanl関数は、(a -> b -> a)型の関数と、初期値aとリスト[b]が与えられて、順番に引数に渡された関数を適用した計算をして計算結果のリストを返す関数。foldlの計算の中間結果を集めたリストを返すとイメージしてもらえば。 scanl :: (a -> b -> a) -> a -> [b] -> [a] Prelude:scanl :: (a -> b -> a) -> a -> [b] -> [a] http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:scanl Prelude> scanl (+) 100 [1..10] [100,101,103,106,110,115,121,128,136,145,155] Scalaにもちゃんとあるよ。 scala> (1 t

    いわゆるscanl関数をRubyで書いてみる - ( ꒪⌓꒪) ゆるよろ日記
    igrep
    igrep 2011/04/13
    injectに慣れてます :)
  • [コンパイラ][Haskell][OCaml] Haskellのinfixの仕組み - mad日記

    OCamlでは < や | で始まる中置演算子は左結合になるため、|> はO.K.ですが、<| 演算子をつなげたときにカッコが必要になってしまいます。 http://d.hatena.ne.jp/mzp/20090105#c1231290114 なんだそれと思ったが,ほんとだった。 | ['=' '<' '>' '|' '&' '$'] symbolchar * { INFIXOP0(Lexing.lexeme lexbuf) } (* 略 *) | ['*' '/' '%'] symbolchar * { INFIXOP3(Lexing.lexeme lexbuf) } とレキサの中で先頭文字だけ('**'のみ2文字)を見て演算子の種別分けをしている。 なんでこんな設計になっているんだろうか。(手抜き? 高速化の為?) ところで,演算子の結合性を指定できる言語にSMLやHaskellがあ

    [コンパイラ][Haskell][OCaml] Haskellのinfixの仕組み - mad日記
  • 1