2015-05-01から1ヶ月間の記事一覧
表題のとおりです。 第十一回 #渋谷java (2015/05/30 14:00〜)shibuya-java.connpass.com で、発表してきました。 On stream-lazy-computation from mike_neck Mochida www.slideshare.net 実際のプレゼンの内容はもう少し丁寧かつ雑な資料でやりました。 Ja…
表記のとおりです。なお、本文はハンズオンの片手間で書いています。 【東京】JJUG ナイトセミナー 「GS Collections 道場」jjug.doorkeeper.jp 勉強会の内容的には手を動かしている時間が長かったので、ツイートは少なめなので、多分トゥゲッターはないと思…
Scalaのcatsというライブラリーのドキュメント読んでて、Haskellじゃんなんて思ってました。 Cats Documentation - Typeclasses で、若干気になったことがありまして、Javaの立場でScalaのimplicit parameterを見ていて、なんか怪しげな感じのする関数だなー…
このようなリストに対する標準的な再帰パターンでは、再帰を明示的に書くよりも、畳込みを使うほうがよいでしょう。そのほうが読みやすく理解しやすいからです。foldrの呼び出しは誰が見ても畳み込みですが、明示的な再帰を読むには考える時間が必要です。 …
元になった記事はこれ。 Java 8 Streamの挙動を調べたった - mike-neckのブログmike-neck.hatenadiary.com パイプライン一つ一つがリンクドリスト状のStreamのインスタンスで構成されているということで、どれくらいの長さのストリームパイプラインを書くとO…
第四章 再帰が重要な理由 問題を大きな問題からより小さな問題に分解する これ以上分けられない基底部まで分解する 基底部では解を明示的に定義する 大きな問題は関数を自分自身に再帰的に適用することで部分問題を再帰的に解いていく 最終的に解を部分的な…
何を言っているかわからないタイトルですね。でも字面通りなのです。 StackageのLTS Haskell便利なのですが、更新頻度が週1回くらいあって、次のQiitaの手順を行うのが面倒なので、なんとかしたかったのですが、あまりにシェルちからなさすぎてgradleでやる…
gradle2.4のリリースノートを先日眺めていたらRule based model configuration improvementsという記述があって、そのユーザーガイドのコードを試してみました。 モデル モデル(POJO)をあらわすインターフェース。Managedアノテーションを付与することによっ…
表記のとおりです。 一応、簡単なHaskellのプログラムは書けるかもしれないような気がするようになりました。 第一部のあたりは具体的にプログラムを書きつつ遊ぶことができるので、それなりに身につく感じがします。ただ、内容的には深堀りはしていないので…
あまり思いつかないけどまとめてみた DBの論理削除 勉強会キャンセル この言語、これこれができないからクソ→それぞれの言語コミュニティでの戦争勃発 ○○を採用すべき10の理由 メールでパスワードつきzipと一緒に平文でパスワードが送られてくる(2015/05/15 …
第10章 エンティティ 変数 型コンストラクタ データコンストラクタ フィールドラベル 型クラス クラスメソッド モジュール定義 基本的な形 module Repository where 特定のエンティティのみエクスポートする module Repository (findById, save) where デー…
あまり火に油を注ぐようなことはしたくないし、議論されていることの内容が僕の頭で理解できるレベルを超えているので、あまり書きたくはないけど、まあ雑感という感じで。 「ScalaでできることJavaでできること以上のことはできない」的なツイートの後、ま…
単なる読書メモ 代数的データ型 定義の仕方1 - 構造体っぽい ラベルなしコンストラクター -- Student型の定義 data Student = Student String String -- インスタンス化 student = Student "Paul" "Smith" -- パターンマッチ printStudent:: Student -> IO()…
単なる読書メモ 無名関数 書き方 \n -> n * n 使い方 map (\n -> n * n) [1,2,3,4] 関数合成 書き方 before lineCount:: String -> Int lineCount s = length $ lines s after lineCount:: String -> Int lineCount = length . lines 部分適用 例:5の倍数を…
表記の件について、JavaのListから作るStreamは操作中に変更をするとその後の挙動についてなんら結果を保証しないので、ListからStreamを作った場合は、変更をしないか、あるいは不可変なListに変換してから作るのが良いです。 と、書いておいてからなのです…
表記のとおりです。 この本全体として リレーショナルモデルの徹底・限界 NULLの撲滅 矛盾をとにかく避けること というテーマが一貫されている本だった。 リレーショナルモデルの徹底というのは、結局のところ矛盾を避けることなのだが… その中で、実際のア…
『ふつうのHaskell』を読んでて竹内関数というのが出てきたので、それをJavaでやってみようと思った。 ちなみに竹内関数とは 竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 Wikip…
標記の件について、今『ふつうのHaskell』を読んで、Haskellを少しずつやっています。 この前までScalaを勉強しようとしていたのに、なぜHaskellという疑問がありますが、これは単純に僕のメンタルモデルというか思考モデルというか、それに起因するところで…
JUnitに追いつこう(2周回遅れ、男子一万メートルだと2分近くの差、箱根駅伝なら4分40秒の差)という趣旨のエントリーです。 要約はこっちを見るほうが早かった JUnit 4.12の新機能紹介まとめ - うさぎ組kyon-mm.hatenablog.com JUnit4.12に追いつこう(周回遅…
『ふつうのHaskell』の読書メモ 標準の関数まとめ 関数 型 動作概要 == a -> a -> Bool 第一引数と第二引数を比較した結果を返す lines String -> [String] 改行文字コードで区切ってリストに変換 words String -> [String] 単語に分解する length [a] -> In…
表記のとおりです。 Java8のFunctionalInterface群は使い勝手がよくて、そっちを主に使っていましたが、GroovyもJava8の言語仕様対応を進めてて、Groovy2.4.3から(それ以前から?)は def func = [apply: {s -> s.size()}] as Function<String, Integer> などと書かなくてもClo</string,>…
単なる読書メモ 正規形 第一正規形(1NF) 第二正規形(2NF) 第三正規形(3NF) ボイスコッド正規形(BCNF) 第四正規形(4NF) 第五正規形(5NF) 第六正規形(6NF) 高いレベルの正規形は、それより低次の正規形の要件を満たす 設計時に目指す目安はBCNFあるいは5NF 2NF…
昨日Haskellの環境を作ってみたのだが、cabal install ghc-modを3回ほど失敗して、(#`皿´)グヌヌとなって、最後の方法だけがまともにうまくいったので、そのメモ。基本的には下記のサイトが元ネタで、僕のエントリーは俺得なメモです。 Macにhaskellをイン…
やっとコップ本読み終わった。 700ページというサイズに途中ダラダラ読んでしまったため、ほとんど内容が頭のなかに残ってない。長い本は1日100ページとか理解はどうでもいいからスピードを高めつつ読みたい(どうせ後でまた読みなおすので)。 とりあえず、覚…