タグ

FPに関するzetta1985のブックマーク (7)

  • Railway oriented programming | F# for fun and profit

    UPDATE: Slides and video from a more comprehensive presentation available here (and if you understand the Either monad, read this first!). UPDATE 2: This is one of my most popular posts, and it is a useful approach to error handling, but please don’t overuse the idea! See my post on “Against Railway-Oriented Programming”. In the previous post, we saw how a use case could be broken into steps, and

    zetta1985
    zetta1985 2016/06/24
  • Coconut Programming Language

    Coconut Simple, elegant, Pythonic functional programming. GitHub Tutorial Documentation FAQ Coconut is a functional programming language that compiles to Python. Since all valid Python is valid Coconut, using Coconut will only extend and enhance what you're already capable of in Python. Coconut aims to enhance the repertoire of Python programmers to include the tools of modern functional programmi

    zetta1985
    zetta1985 2016/06/23
    pipでインストールできるのか。ちょっと試してみようかな
  • 翻訳: "Cake Pattern: The Bakery from the Black Lagoon" - Okapies' Archive

    はじめに NEScala 2013 での Daniel Spiewak (@djspiewak) さんの基調講演 "Cake Pattern: The Bakery from the Black Lagoon"(スライド、動画)*1の抄訳です。記事の公開については、講演者の Spiewak さん、および配信元である Marakana Inc. さんに許可を頂いています。Thank you for your great kindness! 講演者の Spiewak さんは、Scala のディープな活用で有名な Precog の開発に携わっている方です。”モナドはメタファーではない (Monads Are Not Metaphors)”の著者でもあります。 この講演は、昨年のブログ記事 "Existential Types FTW" の議論をさらに掘り下げたもので、Precog での "Ca

  • 抽象的な Future · eed3si9n

    2012-12-12 / scalaz これは Scalaz Advent Calendar 2012 12日目の記事です。 次々と Scala 界の知能派を集結させている Precog 社の開発チームからのブログ Precog.Copointed。今日は blueeyes などの開発でも知られる Kris Nuttycombe (@nuttycom) さんが書いた The Abstract Future を翻訳しました。翻訳の公開は人より許諾済みです。 2012年11月27日 Kris Nuttycombe 著 2012年12月11日 e.e d3si9n 訳 Precog 開発ブログの前回は僕たちが Cake パターンを使ってコードベースを構造化して、ギリギリまで実装型を抽象化してしていることを Daniel が書いた。その記事での説明のとおり、これは非常に強力な概念だ。型を存在型と

  • モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド

    モナドは「アクション」を表す抽象的な構造である。モナドは、Haskellにさまざまな概念に対する記述能力をもたらす。 モナドの基礎 return :: a -> m a: 純粋な値をモナドで包む。 m >>= f :: m a -> (a -> m b) -> m b: モナドmに包まれた値をfに渡し、その結果として現れたモナドを結合する。 固有アクション: それぞれのモナドに固有の方法でモナドを生み出す。 実行: モナドに包まれた値を、より根源的な形に還元する。 モナド則 モナドに以下の三つの制約を課すことによって、最低限度の記述能力を保証している。 return a >>= k == k a m >>= return == m m >>= (\x -> k x >>= h) == (m >>= k) >>= h より強い制約は、より強い力を生み出す。 モナドの分類 モナドは、以下の6つ

    モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド
    zetta1985
    zetta1985 2013/06/06
  • LangExtでのOptionの設計 - ぐるぐる~

    このエントリの最新版はGithubにあります。 Optionの意味を理解していることを前提に、直和型をC#で実現する方法についてを説明し、 LangExtではどういう方針を採用しているのかと、その理由について明らかにします。 バリアント型のC#での設計方針 Optionなどのバリアント型(VBのVariant型のことではありません)をC#で実現する場合、大まかに次の2つの方針があります。 型の階層で表現する タグを判別する値を持つようにする 一つ目の方法は、Option(もしくはMaybe)型の実現方法としてよく使われている方法です。 +-----------+ | Option[T] | +-----------+ △ | +-----+-----+ | | +---------+ +---------+ | Some[T] | | None[T] | +---------+ +----

    LangExtでのOptionの設計 - ぐるぐる~
    zetta1985
    zetta1985 2013/05/30
    match式の模倣、参考になる。option.dartに取り込めるかな・・・
  • モナドについて調べていく(7) - Fight the Future

    One Div Zero: Monads are Elephants Part 1(モナドは象だ)というエントリがあったので、これを訳してモナドの学習を進めます。 Introductions to monads are bit of cottage industry on the Internet. モナドの紹介はインターネットでのほんの小さな事業です。 So I figured, "why buck tradition?" なので私は「なぜ慣習を破るのか?」と思うのです。 But this article will present Scala's way of dealing with monads. しかし、この記事ではScalaでモナドを扱う方法を示します。 An ancient parable goes that several blind men were experiencin

    モナドについて調べていく(7) - Fight the Future
  • 1