C#에 함수형언어처럼 순수함수에 대한 최적화를 명시하는 속성이 따로 있을까 싶어 구글링했었는데 일단 내장으로는 없는듯하고, Memoization이라는 핵심 키워드를 찾아서 위와같이 기존 함수에다가 딕셔너리 캐싱을 델리게이트로 감싸는 식의 별도구현 팁을 겨우 발견하여 작년초에 Thread-Safe까지 추가해 최소코드로 정리했놨었음,
static Func<I, O> MakePure<I, O>(Func<I, O> func)
{
var cache = new ConcurrentDictionary<I, O>();
return i => cache.GetOrAdd(i, func);
}
https://github.com/dotnet/extensions/tree/main/src/Shared/Memoization