HaskellのMaybeコンストラクターを「Just」と呼ぶことをサポートする直観は何ですか?


11

のようなオプションの型の直感は、Int Maybe Intない(つまり、そこにNothingある)か、Int があるということです。そこに何かがあります。

それは私たちが「負」の場合の型コンストラクタを呼び出すように私には理にかなってNothing何もありませんということ-それは正確にすることを意味するので、Intそこに。しかし、なぜ実際にそこにある何か重点が置かれている場合にだけ、単語を使用するのですか?

私にとって、「Just」という言葉には、説明しているものが代替品よりも少ないという意味が含まれています。実際にそこにある何かの反対。例えば、

A:今夜何かしますか?

B:いいえ。私はただ滞在してテレビを見ます。

A:あなたの家の周りの不気味な幽霊の音を調査しましたか?

B:ええ、実際には単なるフクロウでした。

明らかに、この命名の選択の根拠となった直感が欠けています。それは何ですか?私にとって、「Just」という言葉は、Maybeタイプでの使用方法の反対を意味します。


4
この場合、私は、Scalaはより良い名前と一緒に行ったと思いますいくつかのとは対照的に、なし(それはScalaの発明だとは言いません)。
アンドレスF。17年

3
@AndresF。それは、少なくともOderskyが非常によく知っていたMLに遡ります。
デレクエルキンズは南東部を去り

2
@RobertHarvey HaskellerがMaybeモナドとして使用している場合return、おそらくのmzero代わりに、おそらくのようなものを使用しますNothingJustが直接使用される場合、通常Maybeはその時点でモナドスタイルで使用されていません。
デレクエルキンズはSE

2
歴史的な先例はOptionタイプだったでしょう。Haskellの設計者は、おそらくfoo x = Just x「読む」よりも「読む」と感じたでしょうfoo x = Some x。同様に、定義はdata Maybe a = Just a | Nothing" Maybe ais Just aor or it's Nothing"であるため、かなり読みやすいです。Someそこはかなりよく読みますが、Noneそうではありませんdata Option a = Some a | None
デレクエルキンズは南東部を去り、

3
彼らはまだ生きています。Phil WadlerやSimon Peyton Jonesのような人にメールをして、尋ねることができます。または、Haskell-Cafeメーリングリストを試してください。
デレクエルキンズはSEを去り、

回答:


2

これは、過去にサイモンペイトンジョーンズによって説明されました。これは、Nothingが値になるか、他の1つの型の値を「ただ」することを意味します。値として返されるもの、または何も返されないものが1つだけあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.