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
Scalaで集合知プログラミングのまとめです PythonとScalaのお勉強を兼ねつつもゆる〜い感じで進めていきますデス 目次 1章 集合知への招待 Scalaで集合知プログラミング その1 2章 推薦を行う 嗜好データの定義 Scalaで集合知プログラミング その2 ユークリッド距離を使った類似度 Scalaで集合知プログラミング その3 ピアソン相関係数を使った類似度と類似度ランキング Scalaで集合知プログラミング その4 アイテムを推薦する Scalaで集合知プログラミング その5 アイテム間の類似を計算する - 嗜好値データの変換 - Scalaで集合知プログラミング その6 deli.cio.us APIの利用準備 Scalaで集合知プログラミング その7 deli.cio.us APIを利用した推薦 Scalaで集合知プログラミング その8 アイテムベースのフィルタリング
独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScript と Ruby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人
はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。 ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。 また、説明を簡単にする為に細かい部分をいろいろ省略しています。学術的な定義としては正確ではないので、このエントリの説明は大体合ってる位の気持ちで読んでくださいね。 尚、ぼくは圏論の詳しい事はさっぱり分からないので、学問的な話を振られても回答できませんキリッ 圏ってなんなの? 圏論と言えば、圏です。 圏って何なのかというと、対象(obje
今日は、ScalaのOptionの使い方について解説しますよ。OptionはScala使いにとってはなくてはならないものです。これを覚えてしまうと他の言語でもOptionを作りたくなる、かもしれない? Optionってなに? Option型は、値があるかないか分からない状態を表すものです。「Maybeモナド」とか言ってしまうとアレですがまぁそんなようなものらしいです。 Optionの定義 まずは、Optionの定義から見てみましょう。Option型は、抽象クラスOption[+A]と、Option[A]を継承して値がある場合のSome[+A]型とNoneオブジェクトがあります。 Option - Scala Standard Library API (Scaladoc) 2.10.0-20120530-022829-8d38079ab4 - scala.Option // Optionの抽
オブジェクト指向の関数型プログラミング言語「Scala」に関する、日本で初めての大規模なカンファレンス「Scala Conference in Japan 2013」が2013年3月2日、東京工業大学で開催された。 当日はScalaの開発の中核を担う米Typesafe社から4人の招待講演があったほか、国内でのScalaの採用事例など数多くの発表があった。同イベントは有料制だったが、200人分のチケットは1週間ほどで売り切れるなど、国内におけるScalaへの期待の高さをうかがわせた。イベント当日も、セッションによっては立ち見になるほどの盛況ぶりだった。 Scalaは2003年に生まれた比較的新しいオープンソースのプログラミング言語だ。コンパイル後はJava VMで動かせるため、Javaの既存資産をそのまま生かせるのが特徴だ。Scalaの考案者であるMartin Odersky氏らが創業したT
短い中にいろいろなエッセンスが詰まったよいサンプルだと思ったので、id:noire722さん(@noire722)が書いた「HTMLスクレイピング in Scala」を、俺流に書き直してみました。 HTMLスクレイピング in Scala その2 - cignoir の日記 書き直す過程でどういう考えで修正したかを解説します。 第1段階 URLからList[String]を取得する関数を修正 まず、getSourceを見てみました。 def getSource(url: String, toParse: Boolean): List[String] = { var src = Source.fromURL(url, "ISO-8859-1").getLines.toList var charset: String = null val regex = new Regex("""charse
ls-sbt 0.1.0 の時点で書いているので、最新の情報は以下をご確認ください。 http://ls.implicit.ly/ https://github.com/softprops/ls というか、本家に書いてある内容を順序立てて日本語で書いただけなので本家を見たほうが早いかも、、です。 lsとは? sbt の dependency 追加を楽にしてくれる仕組みです。 ls.implicit.ly のサーバに登録済の情報を sbt プラグインで取得して build.sbt に反映することができます。 たとえば unfiltered がこのように登録されているので http://ls.implicit.ly/unfiltered/unfiltered unfiltered を使いたければ、sbtで > ls-install unfilteredとやると、unfiltered の dep
Java 8はついにラムダ式を導入します。ラムダ式自体は2009年からProject Lambdaで利用することができました。当時はラムダ式はJava Closuresと言われていました。サンプルコードを紹介する前に、ラムダ式がJavaプログラマにとってなぜ歓迎すべき機能なのかを説明しましょう。 なぜラムダ式を使うのか ラムダ式の一般的な使い方はGUI開発においてです。一般的に、GUIプログラミングではイベントと結びつく振る舞いを解決する必要があります。例えば、ユーザがボタンを押したとき(イベントが発生したとき), プログラミングは何らかの処理を実行する必要があります。例えば、Swingでは、次のコードで示すようにActionListenersを使います。 class ButtonHandler implements ActionListener { public void actionP
Scala界隈でわりと有名(?)なdispatchというhttpクライアントライブラリがあります。 そして、現在通称dispatch-classicと、通称reboot(もしくは単にdispatchとも呼ぶ?)の2種類あります。 むかしはdispatch-classicだけでした。というか、rebootのほうがでたことにより、単にdispatchと呼ばれていたものが、dispatch-classicと呼ぶようになりました。 github上ではdispatch/dispatchが古いdispatch-classicのほうで、dispatch/rebootのほうが新しいほうです https://github.com/dispatch/dispatch https://github.com/dispatch/reboot なにが違うかというと、classicのほうは "org.apache.ht
Scala IDE 4.7.1 RC3 is out! By Scala IDE team on Jan 02 2018 We have the great pleasure to inform you about Scala IDE 4.7.1 RC3 release. This time we decided to allow for macro expansion in Worksheet to enable it for Spark development. Besides this we put some effort to make Worksheet more stable and added more meaningful errors reporting. New and Noteworthy Worksheet can work with Spark projects
This article describes a Scala design pattern in which traits provide stackable modifications to underlying core classes or traits. One way to use Scala's traits is as stackable modifications. In this pattern, a trait (or class) can play one of three roles: the base, a core, or a stackable. The base trait (or abstract class) defines an abstract interface that all the cores and stackables extend, a
まずはコード1を見てください。 // コード1 def copyFile() = { val in = new FileInputStream(new File("foo.txt")) val out = new FileOutputStream(new File("bar.txt")) val buf = new Array[Byte](1024) var len = 0; while ({ len = in.read(buf); len != -1 }) { out.write(buf, 0, len) } in.close() out.close() } なんのへんてつもないファイルコピー(foo.txt -> bar.txt)のコードです。 別にこれでいいっちゃいいのですが、こういったコードの場合、closeを忘れたら残念なことが起こり得ます。 using という訳でさんざん既出で
Scala By Example の和訳 第 1 章 はじめに 第 2 章 最初の例 第 3 章 アクターとメッセージによるプログラミング 第 4 章 式と簡単な関数 第 5 章 第一級の関数 第 6 章 クラスとオブジェクト 第 7 章 ケースクラスとパターンマッチング 第 8 章 ジェネリックな型とメソッド 第 9 章 リスト 第 10 章 For内包表記 第 11 章 ミュータブルな状態 第 12 章 ストリームによる計算 第 13 章 イテレータ 第 14 章 遅延評価val 第 15 章 暗黙の引数と変換 第 16 章 Hindley/Milner 型推論 第 17 章 並列処理の抽象 和訳 PDFはここです reStructuredTextで書きました。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 第 1 章 は
下記のWikiページは version 1.3 (July 13,2010) です。英文は表示されませんが、編集ページ上にコメントで残してあります。加筆・修正等はどうぞご自由に。 翻訳文の PDFはこちらです。 A Scala Tutorial for Java Programmer version 1.2 A Scala Tutorial for Java Programmer version 1.3 (表示コメントは昔のままですが) ver1.3は reStructuredTextで書いてあります。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 翻訳は完了しましたので、どなたか翻訳の不備をご指摘願います。 -- tmiya (2007-11-18 21:32:02) 翻訳おつかれさまでした。ファイル名を_jaをつけるなどし
これが……型の力かッ……!! spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換えることで、オーバーロードの際の様々な制約(Type Erasureなど)を突破し、より柔軟な拡張性を得ることができるというもの。このパターンでは、引数の型に応じて異なる結果型を返すようにできる。 この記事で、今まで何のために使われるのかわからんかったDependent method typesの有効性が理解でき、あらためて型の力を思い知った。 以前に"Generalized type constraints"(Scalaで<:<とか=:=を使ったgeneraliz
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く