| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2010년10월27일 22:12 주제: 5-2 테스트셋 |
|
|
음 아무도 안올려주시는군요
게시판이 숙제에 관해서 서로 토론하고 답을 찾아가는 공간이었으면 하는데
조교와의 질답란 처럼 되는 것 같아서 조금 아쉽네요
일단 간단한 것으로 조금 올려봅니다.
이상하다 싶으시면 바로 답글 달아주세요~
| 코드: |
(define (makeI E)
(a I E))
(define (makeK E1 E2)
(a (a K E1) E2))
(define (makeS E1 E2 E3)
(a (a (a S E1) E2) E3))
(define sol1 (makeI (v "Alice")))
(define sol2 (makeK I S))
(define sol3 (makeS (v "how") (v "you") (v "do")))
(define sol1_3 (a sol1 sol3))
> (react S)
S
> (react K)
K
> (react I)
I
> (react (a S I))
(S I)
> (react sol2)
I
> (pprint sol_13)
((I "Alice") (((S "how") "you") "do"))
> (react sol_13)
("Alice" (("how" "do") ("you" "do")))
> (react (a sol2 sol_13))
("Alice" (("how" "do") ("you" "do")))
> |
이승중 가 2010년10월28일 7:47에 수정함, 총 1 번 수정됨 |
|
| 위로 |
|
 |
김현우
가입: 2010년 9월 6일 올린 글: 56
|
올려짐: 2010년10월27일 22:20 주제: |
|
|
| 코드: | (pprint sol_13)
(react sol_13)
(react (a sol2 sol_13)) |
에서 sol_13이 무엇인지 나와있지 않네요~
그리고 5-2번의 경우는 react의 출력형태는 SKI,v,a를 어떻게 구현했냐에 따라 영향을 받지 않나 싶습니다. 결과 자체는 물론 같아야겠지만 출력형태는 요약의 경계를 벗어나있는 게 아닌가 합니다.
물론 pprint의 결과는 모두가 동일해야겠구요
혹시 react의 출력 모양도 모두가 동일해야하나요? |
|
| 위로 |
|
 |
김태훈
가입: 2010년 9월 6일 올린 글: 91
|
올려짐: 2010년10월27일 23:53 주제: |
|
|
저도 질문 하나만..
이번엔 react 안에 pprint도 포함되는 건가요?
저번에 미로과제 할 때 mazepp를 mazeGen 안에 포함되게 만들었다가 점수를 깎여서요..
그리고 조교님 예제에
(define sol1 (makeI "Alice"))
라고 되어 있는 건 노준혁님이 고쳐주신 대로
(define sol1 (makeI (v "Alice")))
로 보는게 맞겠죠? ㅎㅎ
김태훈 가 2010년10월28일 0:26에 수정함, 총 1 번 수정됨 |
|
| 위로 |
|
 |
노준혁
가입: 2010년 9월 6일 올린 글: 15
|
올려짐: 2010년10월27일 23:56 주제: |
|
|
개인적으로 조교님께서 올려주신 테스트 셋이 올바르게 동작하도록 수정해보았습니다
| 코드: | (define (makeI E) (a I E))
(define (makeK E1 E2) (a (a K E1) E2))
(define (makeS E1 E2 E3) (a (a (a S E1) E2) E3))
(define sol1 (makeI (v "Alice")))
(define sol2 (makeK I S))
(define sol3 (makeS (v "how") (v "you") (v "do")))
(define sol_13 (a sol1 sol3))
(react S)
;S
(react K)
;K
(react I)
;I
(react (a S I))
;(S I)
(react sol2)
;I
(pprint sol_13)
;((I "Alice") (((S "how") "you") "do"))
(react sol_13)
;("Alice" (("how" "do") ("you" "do")))
(react (a sol2 sol_13))
;("Alice" (("how" "do") ("you" "do")))
|
그리고 조교님의 테스트셋 결과를 봤을 때, react 안에 pprint가 포함되는게 맞는거 같네요 |
|
| 위로 |
|
 |
김찬민
가입: 2010년 9월 6일 올린 글: 81
|
올려짐: 2010년10월27일 23:57 주제: |
|
|
만들어봤습니다.
오류 있으면 알려주세요.
| 코드: |
> (react (a (a (a I (a (a S K) S)) (a (a (v "1") K) (a (a I I) K))) (a S (v "2"))))
((("1" K) K) (S "2"))
> (react (a (a (v "3") (a (a (a (a (a (a I K) (a K I)) (a K (a K K))) S) (v "4")) S)) (a (a (a (a (a S I) (a (a K (v "5")) (a K S))) (a (a I I) S)) (a S I)) (a (a (a (a (a K I) I) (a (a (v "6") (a (v "7") (v "8"))) (a K (v "9")))) (a (a (a I K) S) (v "10"))) (a (a I (a (a (a (v "11") (v "12")) (v "13")) (v "14"))) (a S (a (a (a I K) S) (a K S))))))))
(("3" ("4" S)) ((("5" S) (((("6" ("7" "8")) (K "9")) S) (((("11" "12") "13") "14") (S S)))) ((S I) (((("6" ("7" "8")) (K "9")) S) (((("11" "12") "13") "14") (S S))))))
> (react (a (a (a I S) (a K S)) (a (v "15") (a K K))))
((S (K S)) ("15" (K K)))
> (react (v "16"))
"16"
> (react (a (a (a S S) (a K (a S (a (a S K) S)))) (a K (a (a (a S (a S K)) (a I (a S S))) S))))
((S (K ((S S) S))) (S ((S K) S)))
> (react (a (a (a (a (a S I) (a (a (v "17") (a K S)) (a (a S (v "18")) (v "19")))) (a (a (a (a S K) (a I I)) (a (a (v "20") S) (a I I))) (a (a S (v "21")) (a (a (v "22") K) K)))) (a (a (a (v "23") (a (a K S) (a K (v "24")))) (a (a S K) S)) (a (a (a (a S (v "25")) (a K K)) (a I K)) (a K (a (a (v "26") I) (a K S)))))) (a (a (a (v "27") K) (a I (a (a S K) (a (a (v "28") I) (a I S))))) (a (a (a I (a (a S I) (a (v "29") (v "30")))) (a (v "31") (a I (a (v "32") (v "33"))))) (a (a (a (a K I) (v "34")) I) (a (a I (v "35")) (a (v "36") I)))))))
(((((("20" S) I) ((S "21") (("22" K) K))) ((("17" (K S)) ((S "18") "19")) ((("20" S) I) ((S "21") (("22" K) K))))) ((("23" S) ((S K) S)) ((("25" K) K) (K (("26" I) (K S)))))) ((("27" K) ((S K) (("28" I) S))) ((("31" ("32" "33")) (("29" "30") ("31" ("32" "33")))) ("35" ("36" I)))))
>
> (pprint (a (a (a I (a (a S K) S)) (a (a (v "1") K) (a (a I I) K))) (a S (v "2"))))
(((I ((S K) S)) (("1" K) ((I I) K))) (S "2"))
> (pprint (a (a (v "3") (a (a (a (a (a (a I K) (a K I)) (a K (a K K))) S) (v "4")) S)) (a (a (a (a (a S I) (a (a K (v "5")) (a K S))) (a (a I I) S)) (a S I)) (a (a (a (a (a K I) I) (a (a (v "6") (a (v "7") (v "8"))) (a K (v "9")))) (a (a (a I K) S) (v "10"))) (a (a I (a (a (a (v "11") (v "12")) (v "13")) (v "14"))) (a S (a (a (a I K) S) (a K S))))))))
(("3" ((((((I K) (K I)) (K (K K))) S) "4") S)) (((((S I) ((K "5") (K S))) ((I I) S)) (S I)) (((((K I) I) (("6" ("7" "8")) (K "9"))) (((I K) S) "10")) ((I ((("11" "12") "13") "14")) (S (((I K) S) (K S)))))))
> (pprint (a (a (a I S) (a K S)) (a (v "15") (a K K))))
(((I S) (K S)) ("15" (K K)))
> (pprint (v "16"))
"16"
> (pprint (a (a (a S S) (a K (a S (a (a S K) S)))) (a K (a (a (a S (a S K)) (a I (a S S))) S))))
(((S S) (K (S ((S K) S)))) (K (((S (S K)) (I (S S))) S)))
> (pprint (a (a (a (a (a S I) (a (a (v "17") (a K S)) (a (a S (v "18")) (v "19")))) (a (a (a (a S K) (a I I)) (a (a (v "20") S) (a I I))) (a (a S (v "21")) (a (a (v "22") K) K)))) (a (a (a (v "23") (a (a K S) (a K (v "24")))) (a (a S K) S)) (a (a (a (a S (v "25")) (a K K)) (a I K)) (a K (a (a (v "26") I) (a K S)))))) (a (a (a (v "27") K) (a I (a (a S K) (a (a (v "28") I) (a I S))))) (a (a (a I (a (a S I) (a (v "29") (v "30")))) (a (v "31") (a I (a (v "32") (v "33"))))) (a (a (a (a K I) (v "34")) I) (a (a I (v "35")) (a (v "36") I)))))))
(((((S I) (("17" (K S)) ((S "18") "19"))) ((((S K) (I I)) (("20" S) (I I))) ((S "21") (("22" K) K)))) ((("23" ((K S) (K "24"))) ((S K) S)) ((((S "25") (K K)) (I K)) (K (("26" I) (K S)))))) ((("27" K) (I ((S K) (("28" I) (I S))))) (((I ((S I) ("29" "30"))) ("31" (I ("32" "33")))) ((((K I) "34") I) ((I "35") ("36" I)))))) |
김찬민 가 2010년10월27일 23:59에 수정함, 총 1 번 수정됨 |
|
| 위로 |
|
 |
김찬민
가입: 2010년 9월 6일 올린 글: 81
|
올려짐: 2010년10월27일 23:59 주제: |
|
|
테스트 케이스 생성에 쓰인 생성기입니다.
적당히 고쳐 쓰셔도 좋을 것 같습니다.
| 코드: | (define (counter n)
(lambda ()
(set! n (+ n 1))
n))
(define c0 (counter 0))
(define (make-liquid depth)
(if (equal? 0 (random depth))
(cond [(equal? 0 (random 4))
(begin (display "(v \"")
(display (c0))
(display "\")"))]
[(equal? 0 (random 3))
(display "S")]
[(equal? 0 (random 2))
(display "K")]
[(equal? 0 (random 1))
(display "I")])
(begin (display "(a ")
(make-liquid (- depth 1))
(display " ")
(make-liquid (- depth 1))
(display ")")))) |
|
|
| 위로 |
|
 |
이승중
가입: 2010년 6월 22일 올린 글: 561
|
올려짐: 2010년10월28일 7:53 주제: |
|
|
| 노준혁 씀: | 개인적으로 조교님께서 올려주신 테스트 셋이 올바르게 동작하도록 수정해보았습니다
| 코드: | (define (makeI E) (a I E))
(define (makeK E1 E2) (a (a K E1) E2))
(define (makeS E1 E2 E3) (a (a (a S E1) E2) E3))
(define sol1 (makeI (v "Alice")))
(define sol2 (makeK I S))
(define sol3 (makeS (v "how") (v "you") (v "do")))
(define sol_13 (a sol1 sol3))
(react S)
;S
(react K)
;K
(react I)
;I
(react (a S I))
;(S I)
(react sol2)
;I
(pprint sol_13)
;((I "Alice") (((S "how") "you") "do"))
(react sol_13)
;("Alice" (("how" "do") ("you" "do")))
(react (a sol2 sol_13))
;("Alice" (("how" "do") ("you" "do")))
|
그리고 조교님의 테스트셋 결과를 봤을 때, react 안에 pprint가 포함되는게 맞는거 같네요 |
고쳐주셔서 감사합니다. |
|
| 위로 |
|
 |
|