윤형석
가입: 2012년 9월 5일 올린 글: 26
|
올려짐: 2012년10월12일 13:14 주제: 숙제 4-2 테스트셋 |
|
|
전부 작년 게시판에서 퍼왔습니다.
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 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")))
|
2년전 김찬민님이 올려주신 것
| 코드: |
(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))))))
|
테스트케이스 생성기
| 코드: |
(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 ")"))))
|
https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=2959에서 퍼왔습니다. |
|