Haskell'deki “Belki” yapıcısını çağırmayı destekleyen bazı sezgiler nelerdir?


11

Gibi isteğe bağlı bir tip sezgisi Maybe Intya olmasıdır herhangi Int (böylece, orada Nothingvar) ya da olduğu , bazı Int; orada bir şey var.

Benim için mantıklı bir şekilde "negatif" vaka için tip yapıcısı dediğimiz mantıklıdır Nothing, çünkü tam olarak bu demektir - orada yok Int. Ama neden sadece orada olan bir şey üzerinde vurgu olduğu durumda ?

Bana göre, "Just" kelimesi, tarif ettiği şeyin alternatiften daha az olduğu çağrışımını taşır ; orada olan bir şeyin tam tersi; Örneğin,

C: Bu gece bir şey yapıyor musun?

B: Hayır; Ben sadece içeri kalmak ve televizyon izlemek.

C: Evinizin etrafındaki ürpertici hayalet sesleri araştırdınız mı?

B: evet, aslında sadece bir baykuş olduğu ortaya çıktı .

Açıkçası bu adlandırma seçiminin dayandığı sezgiden yoksundur. Bu ne? Çünkü bana göre, Sadece kelimesi, yazıda nasıl kullanıldığının tam tersi anlamına gelir Maybe.


4
Bu durumda, Scala'nın Hiçbiri yerine Bazılarının daha iyi ismiyle gittiğini düşünüyorum (Scala'nın icadı olduğunu söylemiyorum).
Andres

3
@AndresF. En azından Odersky'nin kesinlikle çok aşina olduğu ML'ye geri dönüyor.
Derek Elkins SE

2
@RobertHarvey Bir Haskeller Maybebir monad olarak kullanıyor olsaydı, muhtemelen bunun yerine bir returnşey mzerokullanırlardı Nothing. Ne zaman Justdoğrudan kullanılır, genellikle Maybebu noktada monadic tarzında kullanılmamaktadır.
Derek Elkins SE

2
Tarihsel örnek tür olurdu Option. Haskell tasarımcıları muhtemelen foo x = Just x"okumayı" daha iyi hissettiler foo x = Some x. Benzer şekilde, tanım data Maybe a = Just a | Nothing"iyi Maybe aya Just ada öyle " olarak oldukça iyi okunur Nothing. Someorada oldukça iyi okur, ama Noneöyle değil data Option a = Some a | None.
Derek Elkins SE

3
Hala yaşıyorlar. Phil Wadler ve Simon Peyton Jones gibi kişilere e-posta gönderebilir ve onlara sorabilirsiniz. Veya Haskell-Cafe posta listesini deneyin.
Derek Elkins SE

Yanıtlar:


2

Bu geçmişte Simon Peyton Jones tarafından açıklanmıştı. Hiçbir şeyin değer olamayacağını ya da 'sadece' başka bir tür değeri olabileceğini ima eder. Bir değer olarak döndürülebilen başka bir şey var ya da hiçbir şey.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.