따라서 hilarious series of events에 의해 FParsec 소스를 다운로드하고 빌드하려고했습니다. 불행히도 새로운 1.9.9.9 버전과 호환되지 않습니다. 쉬운 문제는 해결했지만 아직 작동하지 않는 두 개의 차별 된 노동 조합이 있습니다. 는 특히, Don Syme's post 객체 비교를 지원하지 않으며 기능 중 하나 평등을 지원하지 않
에서 작은 AST에 대해 구분 된 공용체 또는 레코드 유형을 사용할지 여부 선택 아주 간단한 장난감 언어 구문 분석기를 구현한다고 가정 해 보겠습니다. DU 또는 레코드 유형을 사용할지 여부를 결정합니다 (둘 다 혼합 할 수 있습니까?). 언어의 구조는 다음과 같습니다이 간단한 언어로 프로그램의 a Namespace consists of a name and
음성 태그 및 자연어 파서에서 반환 한 다른 레이블에 대해 구분 된 유니온을 만들려고합니다. C#/Java에서는 문자열이나 열거 형을 사용하는 것이 일반적이지만 F #에서는 구분 된 유니온이 읽기 전용 값이기 때문에 F #에서 더 적합한 것처럼 보입니다. 언어 참조에서이 기호 ``...`` 을 사용하여 키워드/예약어를 구분할 수 있음을 발견했습니다. 이 t
를 계층 구조 나는 다음과 같은 코드가 있습니다 public abstract class A ...
public class B : A ...
public class C : A ...
void my_fct(A x) {
if (x is B) { block_1 }
else if (x is C) { block_2 }
else { b
I가 2 개 중첩 된 차별 노동 조합 : type ServiceTypes =
| Contexts
| Context of int
| Producers
type ServiceActions =
| Get of ServiceTypes
| Update of ServiceTypes
그리고 중첩 매치 문 : let s
구분 된 결합에서 허용 된 바인딩이 허용되지 않는 이유는 무엇입니까? 기본 바인딩 생성자에서 바인딩이 실행되도록해야한다고 가정합니다. 보조 메모에서 AI_Choose을 다시 쓸 수있는 방법에 대한 제안 사항에 감사드립니다. 나는 AI와 튜플에 가중치 우선 순위를 유지하려고합니다. 내 생각은 AI_Weighted_Priority이 AI_Priority을 계승
의 내가 중요한 클래스 계층 구조를 가지고 있다고 가정 해 봅시다 : Tag
ControlFlowTag
IfTag
ForTag
JumpTag
HTMLTag
DivTag
나는 이러한 문자열 산재 목록을 만들고 싶어. let MyList = [tagA, tagB, "some text", tagC]
을 차별. 심지어 다음은 실패합니다 기능을 작동 모두 차별 노동 조합에서 같은 케이스를 사용하는 방법은 let getValue (nn : NumExp) = match nn with | Num(n) -> n
있습니까? DU 정의 자체는 정상입니다. 은 내가 Exp 정의에 type Exp =
| NumExpExp of NumExp
| Do
에 비해 F 번호에 기록 유형을 사용하여 let Method = { Name:string } //oversimplification
let method_parser =
spaces >>. many1Satisfy isLetter .>> spaces
|>> (fun name -> { Name=name })
나는 대신, 사물이 좀 더 간결