2010-02-20 6 views
2

. 나는 여전히 eval'd하지만 수동 미세 조정에 대한 리터럴로 데이터를 포함 할 수있다 표정으로 나를 "폭발"표현을하게됩니다 작은 텍스트 편집기를 쓰기를 시도하고있다. 예를 들어쓰기 계획 데이터 구조 때문에 평가-d는 일부 필드의 값으로 계획 표현식을 받아 PLT 제도의 응용 프로그램 (A <a href="http://github.com/jmillikan/Yet-Another-Juggling-Animator" rel="nofollow noreferrer">juggling pattern animator</a>)을 쓰고 있어요에 백업하거나 다른

,

(4hss->sexp "747") 

합법적 패턴을 생성하는 함수를 호출한다. 내가 평가 및 인쇄, 그것은 문자열로 "읽기"가 될 수

(((7 3) - - -) (- - (4 2) -) (- (7 2) - -) (- - - (7 1)) ((4 0) - - -) (- - (7 0) -) (- (7 2) - -) (- - - (4 3)) ((7 3) - - -) (- - (7 0) -) (- (4 1) - -) (- - - (7 1))) 

되고 있지만, 경우하지 않습니다 "평가"기능과 동일. 이 문장의 경우, 물론, 내가 필요한 것 간단

(quote (((7 3... 

하지만 다른 예는 사소하다.

pair-of-jugglers 
; --> 
(#(struct:hand #(struct:position -0.35 2.0 1.0) #(struct:position -0.6 2.05 1.1) 1.832595714594046) #(struct:hand #(struct:position 0.35 2.0 1.0) #(struct:position 0.6 2.0500000000000003 1.1) 1.308996938995747) #(struct:hand #(struct:position 0.35 -2.0 1.0) #(struct:position 0.6 -2.05 1.1) -1.3089969389957472) #(struct:hand #(struct:position -0.35 -2.0 1.0) #(struct:position -0.6 -2.05 1.1) -1.8325957145940461)) 

가 나는 적어도 세 가지 솔루션, 내가 매우 좋아하는 아무 것도 없음을 생각했습니다 :이 사람은, 예를 들어, 벡터로 인쇄 구조체를 포함한다.

다시는 나쁜 재귀 꿈을 가지고 시작하기 전에 저를 도와주세요.

답변

3

나는 당신이 뭘하려는 건지 모르겠어요. 특히, eval - 가능 코드로 파일을 생성하는 것은 이상한 선택처럼 보입니다. 어쨌든 구조체를 다루는 경우 무작위 값의 직렬화를 만드는 것이 문제가된다. 같은 이름을 가진 다른 구조체가있을 수 있기 때문이다.

  • 문서화되지 않은 라이브러리를 읽고 (대용량 데이터에 유용) 바이너리 형식의 값을 쓸 수 있습니다 scheme/fasl있다 : 당신을위한 관련이있을 수 몇 가지 포인트.

  • 또한 mzlib/pconvert - DrScheme이 값을 평가할 수있는 식으로 인쇄하는 데 사용하는 라이브러리입니다 (그러나 모든 종류의 데이터에서 작동하지는 않습니다).

  • 당신이 읽을 수있는 형태로 작성하는 매우 쉬운 구조체를 사용하려면

    는, 당신은 "조립식"구조체를 사용할 수 있습니다.

은 자세한 내용은없이 얘기하기 어렵다, 그래서

+0

를 (자세한 내용은. 메일 링리스트에 물어 아마 최선의 방법),하지만 난 조립식 옵션이 꽤 잘 작동 할 수 있다고 생각합니다. (나는 당신의 것을 시도했다 - 그래픽은 인상적이다. 그러나 나는 인터페이스를 이해할 수 없었다. 나는 마술사가 아니다. ..) –

+0

고마워! 인터페이스는 실제로 아직 좋지 않습니다. 나는 아직도 그것에 대해 생각하고있다. –

+0

아직도 할 수있는 일에 대해 궁금하다면 마침내 github의 Wiki 페이지에 몇 가지 지침과 예제를 남겼습니다. –