タグ

Scalaに関するhajimehoshiのブックマーク (33)

  • 圏論とSwiftへの応用 / iOSDC Japan 2018

    iOSDC Japan 2018 (Sep 2, 2018) https://iosdc.jp/2018/ https://fortee.jp/iosdc-japan-2018/proposal/45b858e0-753c-4387-9210-5837cff6da7a iOSDC Japan 2018 「圏論とSwiftへの応用」発表スライドメモ - Qiita https://qiita.com/inamiy/items/3e0c10d5eaf234b41c3d iOSDC Japan 2018 で発表した「圏論とSwiftへの応用」の補足 - Qiita https://qiita.com/inamiy/items/c4e85f22273e98b8db26 エラッタ: p60. https://twitter.com/inamiy/status/1413894710372888577

    圏論とSwiftへの応用 / iOSDC Japan 2018
  • 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog

    κeenです。最近同期/非同期、ブロッキング/ノンブロッキング、直接形式/継続渡し形式あたりが混乱してきたので個人的に整理します。 あくまで私個人の理解を纏めただけなので誤謬などに注意して下さい。 追記: @tanaka_akrさんから指摘されたのですが、用語の説明が間違っていそうだったので書き直しました。 diffはこちら 非同期とノンブロッキングはよく混同されます。また、非同期処理の記述形式として直接形式や継続渡し形式などがあります。 私自身違う言葉だなとは思いつつも混同したり違いを忘れたりしています。 非同期もノンブロッキングもナイーブなIOに比べると速い方式だな程度の理解でいてそんなに困らないと思ってますし混同や誤用に目くじらを立てるつもりもありません。 しかしながら3者を区別しないと意味を成さない文脈で3者を混同している技術を何度か見掛けたので(自分の中で)整理しようと思ったのが

    非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
  • https://dwango.github.io/scala_text/

  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
  • バカ向け言語 Scala - だらだらしてたいなぁ

    なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数

    バカ向け言語 Scala - だらだらしてたいなぁ
  • 「Scala嫌い。EJB2みたい」 - karasuyamatenguの日記

    http://blog.joda.org/2011/11/scala-feels-like-ejb-2-and-other.html 以下、Stephen Colebourne氏の意見をまとめてみた。 モジュールシステムがない 複数のクラスを含むレベルでバージョンと依存関係を管理するものでなきゃ駄目。 「Jar Hell」を招く CORBAなどはこの問題を解決しようとした結果(の失敗作) (このようなモジュールシステムを持っている言語は例にあげていない) 並列処理 (Concurrency) 関数型言語だから安全にマルチスレッドのコードが書けるとい言うけどこれは嘘 並列処理の問題は「shared mutable state」にあるがスカラはこの点において鈍感 (clojureは可変状態を別扱いにすることによって並列処理を安全にしているという点で違うようだ) コミュニティー 関数型言語ファン

    「Scala嫌い。EJB2みたい」 - karasuyamatenguの日記
  • Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~

    Twitterしてたら目に入ったので軽く。 Javaにおけるnull。これまでとこれから この後のスライドで、 Scalaにおける「何もないもの」の分類はやり過ぎ感はある と言われているんですが、ある程度は誤解に基づく意見だよなぁこれは、ということを言っておこうかなと。 Scalaについて 日では説明が不要なくらいScalaって有名になってると思うんですが一応。 ScalaはJVMの上で動作する、(クラス指向の)オブジェクト指向プログラミングと関数型プログラミングを融合させた言語です。 そして、Scalaのコア機能はどちらかというとオブジェクト指向プログラミング寄りです。 オブジェクト指向プログラミングをベースに、関数型の色々なものを実現している感じです*1。 オブジェクト指向プログラミング的な機能として真っ先に思いつくのは何でしょうか? 割と上位の方に、「継承」とか「型階層」とか来るん

    Scalaのnull/Nothing/Nil/Noneはやりすぎなのか? - ぐるぐる~
  • モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化 - xuwei-k's blog

    以下の2つの続き ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 FutureとEitherの話の続き(ApplicativeとMonadの違い) 上記の2つ(特に最初の方)を読んだことを前提で書くので、読んでない人は先にそちらを読みましょう。 なんだか少し関連する話(?)で盛り上がっていて、書かないといけない気がしてきたので 非同期プログラミングの難しさとScalaのFuture そのtogetterの議論について色々書きたいこと*1もありますが、それは置いておき、表題の「モナドによる同期/非同期プログラミングの抽象化」について書きます。というか、(非同期プログラミングの話より)便乗してモナドとモナドトランスフォーマーの便利さを話したいだけかもしれません(?) 前回2つは「Future使って非同期にしても、だいたい関数の体同じでいけるよ」ということを書きました

    モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化 - xuwei-k's blog
  • Scala.js no longer experimental | The Scala Programming Language

    Today, we announced the release of Scala.js v0.6.0, the Scala to JavaScript compiler, and dropped the experimental flag associated to it. Yes, you read it right: Scala.js is no longer experimental! After exactly 2 years of development, we finally feel comfortable calling it production-ready. Note, however, that Scala.js is not part of the Typesafe Reactive platform. Thus, although we consider Scal

  • GitHub - alexandru/scala-best-practices: A collection of Scala best practices

    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 - alexandru/scala-best-practices: A collection of Scala best practices
  • Swift is a lot like Scala

    A new programming language called Swift was announced at WWDC'14. Here's a source-to-source comparison of Swift and Scala using the examples given in "The Swift Programming Language" book published by Apple in the iTunes Store. I suspect the two are related ;-) Syntacticly, it's fair to say that Swift is a dialect of Scala. Swift inherits from Scala most of the "banner" features listed by Apple: T

  • ブラウザで動くラムダ計算器を作った(Scala で) - 詩と創作・思索のひろば

    最近 Types and Programming Languages を読んでいて、はじめは我慢していたものの、やはりラムダ式の簡約をコンピュータで確認したい気持ちが高まってきたので、ブラウザで動くものを書いてみた。このには OCaml による実装の章がときどき挟まれるので、演習の一環ともいえる。 Lambda Calculator "(λx.λy.x y)(λz.z)" といったラムダ式を入力して送信すると(λ は \ で代用可能)、解析された項が出力される。その後1ステップずつ簡約して、項が評価されていく過程を眺められる。評価戦略は TAPL にしたがって call-by-value と call-by-name を提供してるつもりです。毎回どのサブ項が評価されたのかがハイライトされるので、実用的。 同じ項を何度も入力するのが辛いので文字列マクロを導入してあり、"$omega" など

    ブラウザで動くラムダ計算器を作った(Scala で) - 詩と創作・思索のひろば
  • Signs of the Next Paradigm Shift: Part II

    Software: The Next Generation Signs of the Next Paradigm Shift: Part II by James O. Coplien August 24, 2006 Summary In Part I, I related a resurgence in interest in multi-paradigm design about thirteen years after its first appearance. In this 'blog I consider what such developments portend for curriculum design and, in fact, the basic content of any CS program. So: What if I was right? My last 'b

    Signs of the Next Paradigm Shift: Part II
  • 独習 Scalaz — 独習 Scalaz

    独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScriptRuby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人

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

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

    圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ
  • Scalaへのアプローチ

    4月29日(日)にニコニコ超会議 2012の超エンジニアミーティングのScalaユーザーグループのコマで「Scalaでプログラムを作りました」のタイトルでお話をさせていただきました。 当日使用したスライドは以下のものです。 http://www.slideshare.net/asami224/scala-12749382 セッションの目的は、JavaなどのOOPをやっていて、Scalaをこれから始めたい人向けの情報提供です。 大きく以下の情報を提供しています。 Scalaの使い所 Scalaプログラミングの魅力 ボク自身は最近はScalazでの型クラスベースのMonadicプログラミングに凝っているので、Scalaプログラミングの面白さというと、このあたりの紹介をしてみたくなるわけですが、これから関数型プログラミングを始める人には、かなりハードルが高い内容でセッションの趣旨と合いません。

    Scalaへのアプローチ
  • Scalaでプログラムを作りました

    ニコニコ超会議2012の超エンジニアミーティングで使用したスライドです。JavaなどのOOPをやっていて、Scalaをこれから始めたい人向けの情報提供を目的としています。

    Scalaでプログラムを作りました
  • Scalaはオブジェクト指向言語です(2) - kmizuの日記

    1日空いてしまいましたが、引き続きふつーのオブジェクト指向言語 としてのScalaを説明していきます。 高階関数:ただのメソッド これはジョークではなく、当にただのメソッドなのです。とりあえず、説明は後にして、代表的な高階関数である、mapScala実装を見てみましょう*1。 def map[A, B](list: List[A], fun: A => B): List[B] = { val newList = new ArrayList[B] val it = list.iterator() while(it.hasNext()) { newList.add(fun.apply(it.next())) } newList } 利用例は以下のようになります。 val a = new ArrayList[String]{ add("A"); add("B") } println(map(

    Scalaはオブジェクト指向言語です(2) - kmizuの日記
  • Scala design pattern

    The document discusses Scala design patterns. It covers the Loan pattern, CONCEPT pattern, Cake pattern, handling binary methods, monad pattern and for comprehensions, generalized type constraints, phantom types, and the safe builder pattern. It also mentions Odersky's paper on type classes which describes how implicits in Scala can be used to implement type class-style interfaces like concepts fr

    Scala design pattern
  • Home

    Scala で圏論入門 これは、Typesafe 社の Director Professional Services である Heiko Seeberger 氏による「Introduction to Category Theory in Scala」の翻訳文です。誤訳、誤記などがありましたら、 日Scalaユーザーズグループの「圏論入門 レビューのお願い」トピックに投稿していただくか、@quassia88 にご連絡ください。 もし君が僕みたいに、以前はJavaディベロッパーで、Scalaのファンになったばかりなら、君は多分遅かれ早かれ、モナドやら関手やらの、圏論の分野からやってきた謎に遭遇するだろう。そういった未知の概念は、君を、自分が恐ろしくまぬけなんじゃないか、という気分にさせることだと思う。もし君がそういう概念に既に親しんでいるなら、時間を無駄にすることはない、すぐにこのページを閉

    Home