2014-01-31 1 views
0

라켓은 (+ 2 + 3i 4) 과 같이 2 + 3i와 같은 형식의 복소수를 읽을 수 있으며 6 + 3i를 반환합니다. 내 목표는 동일한 방식으로 사용자가 쿼터니언을 만들 수 있도록 허용하는 것입니다. 따라서 (+ 1 + 2i + 3j + 4k 3 + 4i + 2j + 1k) 은 "정의되지 않은 식별자"오류를 발생시키지 않습니다. 쿼터니언은 내가 특별히 구현하려고 시도한 것이지만, 이것은 라켓 리더가 숫자를 분석하는 방법을 변경하는 방법에 대한보다 일반적인 질문입니다. this page의 1.3.3 절은 BNF의 숫자 문법에 대해 개괄적으로 설명하며 변경하고자하는 부분입니다 (특히 정확한/부정확 한 복합체). 독자가 이러한 형식으로 작성된 쿼터니언을 인식하도록하는 가장 좋은 방법은 무엇입니까?라 케트에서 복소수와 같은 쿼터니언을 읽음

답변

0

Little Schemer와 The Seductive Computer는 유용한 읽기입니다. 내 개인 의견은 REPL에 과부하가 될 것입니다.

0

이것은 라켓 메일 링리스트 인 http://lists.racket-lang.org/users/에 대한 더 나은 대답을 얻는 질문입니다. 당신은 당신 자신의 독자를 정의 할 수있다. 그러나 문제는 기존의 독자 프레임 워크가 얼마나 확장 가능한지, 모듈 방식으로 BNF에 추가 할 수 있는지 여부이다. 제 추측으로는 꽤 많은 코드를 복제해야 겠지만 확실히 가능합니다.

관련 문제