저는 람다 미적분 (파싱이 아니라 파싱이 평가되는 것입니다)을 평가하는 알고리즘에 대해 조금 읽었습니다. 그러나 지금까지는 모두 펜과 종이로 사용하는 방법과 비슷했습니다. 나는 처음부터 C#에서 내 자신의 람다 미적분 평가기를 쓰고 싶습니다 그리고 실제 프로그램이 이것을 어떻게하는지 알고 싶습니다.C#은 람다 식을 어떻게 평가합니까?
람다 식은 람다 미적분의 상위 집합이므로 람다 식의 람다 미적분 하위 집합이 어떻게 평가되는지 (이진 연산 또는 형 변환 등은 신경 쓰지 않아도됩니다) 알고 싶습니다.
나는 이미 내 수업을하지만 평가에 여기에서 이동하는 방법을 잘 모르겠어요 :
public enum TermType { Variable, Application, Abstraction };
public abstract class LambdaTerm
{
public readonly TermType TermType;
protected LambdaTerm(TermType termType)
{
TermType = termType;
}
}
public class LambdaVariable : LambdaTerm
{
public string Name;
public LambdaVariable() : base(TermType.Variable) { }
}
public class LambdaApplication : LambdaTerm
{
public LambdaTerm Function;
public LambdaTerm Parameter;
public LambdaApplication() : base(TermType.Application) { }
}
public class LambdaAbstraction : LambdaTerm
{
public string ArgumentName;
public LambdaTerm Body;
public LambdaAbstraction() : base(TermType.Abstraction) { }
}
대답은 무엇입니까? –
@AustinSalonen 당신은 무엇을 의미합니까? 제 질문이 충분히 명확하지 않습니까? 대략적으로 람다 식을 평가하는 데 어떤 알고리즘이 사용되는지 알고 싶습니다. – Juan
이 질문은 http://programmers.stackexchange.com/ – CDspace