タグ

maybeに関するkiyo_hikoのブックマーク (11)

  • オブジェクト指向&関数型言語でなぜつくるのか - IOモナドで副作用を実現する

    『IOモナドで副作用を実現する』 以下の文章は、第13章の一部として「関数型言語の7つの特徴」のあとの「関数型言語の分類」に続く節として書いたものです。 他の文章に比べてバランスが悪かったため、最終段階でボツにしました。 →『オブジェクト指向でなぜつくるのか第2版』のサポートページへ 純粋関数型言語であっても、プログラム全体としては画面やデータベースやネットワークなどとの外部入出力を実現する必要があります。このため、言語仕様として副作用を認めないとしても、なんらかの仕組みを用意して入出力を実現する必要があります。これはHaskellでは「モナド」と呼ぶ仕組みが相当します。今のところモナドを言語標準の仕組みにしているのはHaskellだけですが、わかりづらいことで悪名高い仕組みでもあるため、ここで概要を説明しておきましょう。突っ込んだ内容になりますので、Haskellやモナドに特別な関心が

  • Coding: Maybe vs Null Object patterns | Mark Needham

    On the project I’m currently working on my colleague Christian Blunden has introduced a version of the Maybe type into the code base, a concept that originally derives from the world of functional programming. The code looks a bit like this: public interface Maybe<T> { bool HasValue(); T Value(); } public class Some<T> : Maybe<T> { private readonly T t; public Some(T t) { this.t = t; } public bool

    kiyo_hiko
    kiyo_hiko 2012/11/27
    「readonly T t」にnullを入れるのを避けて別クラスNoneにしてる理由がいまいち理解できてない
  • Java の語彙で Maybe を説明してみる - ぐるぐる~


    java-ja - 西  Maybe () Java  Maybe   Maybe null     int User  import java.util.*; class User { final String name;
    Java の語彙で Maybe を説明してみる - ぐるぐる~
  • What operator should perl5porters use for safe dereferencing?

    kiyo_hiko
    kiyo_hiko 2012/06/01
    「~>」は正規表現の親戚みたいで気に入らないので、「?->」に入れておいたました
  • [Cl-monad-macros-cvs] r6 - trunk

    kiyo_hiko
    kiyo_hiko 2012/03/09
    いつか読む / なんとなく「Maybeとprogn組み合わせたら業務ロジック書くには無敵じゃね?(バカみたいに簡単に記述できるんじゃ)」と思いついて検索したら出てきた
  • Null pointers vs None vs Maybe

  • Maybeを知った。 - ちゃまぐの備忘録

    package Test; use Mouse; has hoge => ( is => 'rw', isa => 'Str', ); package main; my $test = Test->new; $test->hoge( undef ); こんな感じで、isaでStrを指定したアトリビュートにundefを書き込もうとすると怒られる。 理由は簡単で、Str型は文字列ではないundefを書き込むことができないというだけ。 これを知らなかった。勉強不足ですね。 文字列とundefも入れたいという場合は、以下のようにMaybeを使うといい。 has hoge => ( is => 'rw', isa => 'Maybe[Str]', ); 参考 http://perldoc.perlassociation.org/pod/Moose-Doc-JA/Moose/Manual/Types.

    Maybeを知った。 - ちゃまぐの備忘録
    kiyo_hiko
    kiyo_hiko 2012/01/31
    興味深い。MooseでMaybe使えるなら、自前で書いたMaybeもどきよりMooseのほうがハッピーになりそう
  • The Haskell 98 Library Report: Maybe Utilities

    module Maybe( isJust, isNothing, fromJust, fromMaybe, listToMaybe, maybeToList, catMaybes, mapMaybe, -- ...and what the Prelude exports Maybe(Nothing, Just), maybe ) where isJust, isNothing    :: Maybe a -> Bool fromJust             :: Maybe a -> a fromMaybe            :: a -> Maybe a -> a listToMaybe          :: [a] -> Maybe a maybeToList          :: Maybe a -> [a] catMaybes            :: [Maybe 

    kiyo_hiko
    kiyo_hiko 2011/12/18
    「maybeToList :: Maybe a -> [a]; maybeToList Nothing = []; maybeToList (Just a) = [a]」「listToMaybe :: [a] -> Maybe a; listToMaybe [] = Nothing; listToMaybe (a:_) = Just a」・・・なるほど
  • Meet the Monads


      Maybe     Maybe 使 Maybe 使  Haskell    Haskell  Maybe  data Maybe a = Nothing | Just a Maybe  Nothing  JustJust  country = Just "China" Maybe 
  • モナドを実装する(Python編) | Webシステム開発/教育ソリューションのタイムインターメディア


        Python   使  Python 使  Python  GitHub    Maybe   Maybe  Python   Monad  3: mm return >>=
    モナドを実装する(Python編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • Perlでモナドを学ぶ - Maybeモナド編 - Pixel Pedals of Tomakomai


    Maybe  MaybeT_objectundefundefundefHaskellNothing  justHaskell*1 sub just { my $value = shift; return \$value; } my $list_monad = Monad->new( T_arrow => sub { my $arrow = shift; # A -> B return sub { my $tx = shift; # TA ->T
    Perlでモナドを学ぶ - Maybeモナド編 - Pixel Pedals of Tomakomai
  • 1