공통 LISP혀짤배기 만드는 속성 목록
여기 내 문제입니다 :
: 나는 헤더 속성 이름되는 PLIST를 반환하는 헤더에서 함수를 csv 파일에서 열을 헤더를 읽고 만들 싶습니다 열 머리글이 "이름", "날짜", "이벤트"인 csv 파일이 있다고합시다. 그래서 더 라인을 읽는 내가 써서
(defun read-csv-line (x y z)
(list :Name x :Date y :Event z))
: 그 3 문자열에서 내가 좋아하는 함수를 작성하고 싶습니다
:(read-csv-line "Bob" "1/1/1985" "Birthday")
내가 매크로 트릭을 할 것이라고 생각
(defmacro convert-to-plist (x y z)
`(defun read-csv-line (a b c)
(list :,(intern x) a :,(intern y) b :,(intern z) c)))
하지만이 구문은 올바르지 않은 것으로 간주됩니다.
그럼 어떻게 할 수 있을까요? 다양한 인수를 사용하는 것이 더 좋을 것입니다 ...
미리 감사드립니다! 당신이 무엇을해야
이 그 OP 원형에 충실 유지 defmacro 안에 defun을 가지고 있었지만 실제로는 좋은 형태가 아닌 것 같습니다. –
이 방법은 효과가 있지만 좋은 해결책에서 멀어집니다. 나중에 (''(-to-plist) ''FOO ''BAR ''BAZ ''를 호출하면''read-csv-line''의 정의를 덮어 씁니다. – Vatine
@Vatine 나는이 해결책을 추천하지 않는다. 나는 그의 실수가있는 곳에서만 OP를 보여 주었다. – uselpa