필자는 효과적으로 렉서 토큰 시퀀스에서 작동하는 재귀 함수 세트 인 파서를 보유하고 있습니다.F # 시퀀스가 다시 열거되게하는 원인은 무엇입니까?
제가 직면 한 문제는 시퀀스가 재귀 함수 호출에서 처음부터 다시 시작되는 것 같습니다. Parse
으로 호출 될 수 있습니다 기능 Parse
let restricted = Seq.take_while token_search tokens
let compiled_nodes = Seq.fold (fun list (next: Lexer.Token) -> list @ parse_token this restricted next) [] restricted
기능 parse_token
에 대해 다음과 골격 정의 감안할 때.
그러나 그런 경우 매개 변수 tokens
이 시퀀스의 시작 부분에 위치하게됩니다.
순서를 유지하는 방법에 대한 아이디어는 어디에 있어야합니까?
TIA
당신은 확실히 옳았습니다. 나는 그 질문을 게시 한 후 그 사실을 깨달았습니다. 나는 잘못된 접근 방식 인 IEnumerator와 동일한 것을 만들려고했다. 나는 목록을 통해 건물을 짓고, 소비되지 않은 나머지를 지나쳤다. – kolosy