record를 써보기 위해 모나드까지 갔습니다.
우주의 비밀 모나드에 접근해봅시다
모나드의 세계를 탐구하기 위해 Monad라는 콘솔 프로젝트를 만듭니다. 사실 모나드 및 함수형 언어를 이해하기 위해 과거에 시간을 썼지만 제것으로 만들 수 는 없었습니다. C#9 record를 이용해 모나드의 세계에 빠지기 위해, 다시 시도합니다.
C# 9의 모나드 세계에는 더이상 Main() 메소드 없는(있지만 감춰진) 세계입니다.
using System;
Console.WriteLine("Hello! Monad!");
위에 공유된 아티클을 이용해 빠르게 모나드 세계를 구축합니다.
이 세상의 최소 원소는 Maybe입니다. Maybe는 아무것도 없는 Nothing과 이외의 모든것 중의 분명함인 Just로 이루어진 세상입니다. 이런 모나드 세상은 다음과 같이 빠르게 구축되었습니다.
using System;
;
abstract record Maybe<T>;
record Nothing<T> : Maybe<T>;
record Just<T>(T Value) : Maybe<T>;
이런 세상은 C# 9의 최상위 문에 의해서 아무것도 없는 빈 공간인 세미콜론(;)으로 구축되었습니다.
이 세상은 최소 원자의 정의만 있을 뿐 여전히 아무것도( ; ) 없는 빈 세상입니다.
그전에 모나드 세계에서는 nullable할 수 없으므로 null값에 컴파일러가 경고메시지를 보내도록 다음과 같이 프로젝트에 속성을 추가합니다.

이 속성을 주면 다음과 같이 null일 경우 경고 메시지를 줍니다.


