2015年12月10日のブックマーク (3件)

  • 目指せワンライナー! 〜 1行コードでがんばる 〜 - Qiita

    これはHaskellアドベントカレンダー2015の(2日遅れの)8日目の記事です。 当にすみませんでした。 導入 小さな部品(関数)を組み合わせて大きなプログラム(関数)を作り上げる、これこそが関数型の醍醐味かなと思います。 しかもHaskellは標準関数も豊富で、それらを糊付けする手段も豊富です。上手くやればプログラム全体を1行で書き上げてしまうことも可能なんじゃないでしょうか。夢がありますよね。 そんなわけで、Haskellにおいて1行(ワンライナー)コードを書くための指針をまとめます。 メリット まずはワンライナーのメリットをおさらいです。 いちいち関数名や変数名を考えずに済む ワンライナーコードは他のワンライナーのパーツとして容易に組み込める 1.について、 いちいち細かな関数に分けて別々に記述していると、それだけ名前を考える必要がありますね。 正直、英語よく分からないし、名前を

    目指せワンライナー! 〜 1行コードでがんばる 〜 - Qiita
    lotz84
    lotz84 2015/12/10
    リスト内包表記でパターンマッチするのかw
  • Scoped type variablesが必要になるとき - maoeのブログ

    whereの中の局所定義に型シグネチャを付けると Couldn't match type `a' with `a1' ...といわれて型検査を通らない!という経験はありませんか?これを直すには字句的スコープを持つ型変数が必要です。この機能はScopedTypeVariablesという言語拡張によって有効になります。 局所定義された式に型シグネチャを付けられない たとえばこんな単純な例を考えましょう。 rev :: [a] -> [a] rev xs = ys where ys = reverse xs 関数revは単にreverseの別名です。reverse xsの結果をwhereでysに束縛し、それを返しているだけです。このysの型はもちろん[a]な訳ですが、どういうわけか型シグネチャを書くと型検査で弾かれます。 rev :: [a] -> [a] rev xs = ys where y

    Scoped type variablesが必要になるとき - maoeのブログ
    lotz84
    lotz84 2015/12/10
    なるほど
  • 会社をつくるときにやっておいてよかったこと、やっておけばよかったこと

    @watamboの個人的記録です。行政に眠っている有益なデータをオープンにしたり、オープンデータをより使いやすくすることに関心があります。 この記事は CAMPHOR- Advent Calendar 2015 の10日目の記事です。 こんにちは。@watamboです。 いまは日中、リクルートという会社で新規事業開発 兼 タウンワークのプロダクトマネージャーとしてお仕事をしながら、学生時代に創業したVi-Kingという会社を経営しています。 Vi-Kingでは主にアプリ開発の企画・UX/UIデザインを担当しています。 今日は「会社をつくるときにやっておいてよかったこと、やっておけばよかったこと」というお題で、自分が会社を設立したときにやってよかった点・反省点を書こうと思います。 最初に:きっかけ やりたいことをやっている人が世界を変えられるようなものやサービスを生み出せる場所を京都につくり

    lotz84
    lotz84 2015/12/10