Haskell에서 Maybe 생성자를“Just”호출하는 것을 지원하는 직관은 무엇입니까?


11

같은 옵션 형태의 직관 Maybe Int중 하나 없다는 것입니다 지능 (따라서, 거기 Nothing가) 또는이 있다는 일부 지능; 뭔가가 있습니다.

우리가 "부정적"사례에 대한 타입 생성자를 호출한다는 것은 나에게 의미가 있습니다 Nothing. 왜냐하면 그것은 그것이 존재하지 않는다는 것을 의미하기 Int때문입니다. 그런데 왜 단어를 사용 그냥 강조 뭔가에있는 경우에 실제로 거기 ?

나에게 "그냥"이라는 단어는 그것이 묘사하는 것이 대안보다 적다 는 의미를 내포 하고있다. 실제로 거기에있는 것의 반대; 예를 들어

A : 오늘 밤에 뭐하세요?

B : 아니오; 난 그냥 머물면서 TV를 볼거야.

A : 집 주변의 소름 끼치는 유령 소리를 조사 했습니까?

B : 네, 실제로이었다 밝혀 단지 올빼미.

분명히이 명명 선택의 기반이 된 직관이 부족합니다. 무엇입니까? 나에게 그냥 단어라는 단어 가 Maybe형식 에서 사용되는 방식과 반대되는 것을 의미합니다 .


4
이 경우, Scala는 None 과 반대로 (Scala의 발명이라고 말하지 않는) Some 이라는 더 나은 이름으로 갔다고 생각합니다 .
Andres F.

3
@AndresF. 그것은 Odersky가 확실히 매우 친숙했던 ML로 돌아갑니다.
데릭 엘 킨스가

2
@RobertHarvey Haskeller가 Maybe모나드 로 사용 하고 있다면 아마도을 대신 사용 return했을 것 mzero입니다 Nothing. 를 Just직접 사용하는 경우 일반적으로 Maybe해당 시점에서 모나드 스타일로 사용되지 않습니다.
Derek Elkins가 SE

2
역사적 선례가 그 Option유형 이었을 것 입니다. Haskell의 설계자들은 아마도 foo x = Just x"읽는 것"보다 낫다고 느꼈을 것 foo x = Some x입니다. 마찬가지로, 정의 data Maybe a = Just a | Nothing는 " Maybe ais Just aor it 's Nothing" 로 잘 읽 힙니다 . Some거기에 합리적으로 잘 읽지 만에 대한 None것은 아닙니다 data Option a = Some a | None.
데릭 엘 킨스가

3
그들은 여전히 ​​살아있다. Phil Wadler 나 Simon Peyton Jones와 같은 사람들에게 이메일을 보내서 물어볼 수 있습니다. 또는 Haskell-Cafe 메일 링리스트를 사용해보십시오.
Derek Elkins가 SE

답변:


2

이것은 과거 Simon Peyton Jones에 의해 설명되었습니다. Nothing은 값이 될 수 있거나 다른 단일 유형 값을 '그냥'일 수 있음을 의미합니다. 값으로 반환 될 수있는 다른 것은 '단지'이거나 아무것도 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.