이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년10월10일 19:56 주제: HW3 테스트셋입니다. |
|
|
너무 화면에 뿌려지는 글자가 많아서 눈이 핑핑 도네요.
이렇게 돌려봐도 제대로 짠건지도 모르겠고..
미로 만드는건 테스트가 안될거같아서 패스합니다.
채점용 갈림길 수 세는 함수라도 만들어볼까 했는데 각자 내부구현따라 길찾기 함수가 다를테니 그런것도 불가능할것 같고요.
비대칭 beautiful한 무늬 만드는게 꽤 어렵군요 .....
> (define Basic1 (glue-array-from-array black black white black))
> (pprint-array Basic1)
■ ■
■ □
> (define Basic2 (glue-array-from-array black white white black))
> (pprint-array Basic2)
■ □
■ □
> (pprint-array (glue-array-from-array Basic1 Basic2 (rotate-array Basic1) (rotate-array Basic2)))
■ ■ ■ □
■ □ ■ □
■ ■ ■ ■
□ □ □ ■
> (beautiful (glue-array-from-array Basic1 (rotate-array (rotate-array Basic2)) (rotate-array Basic1)
(rotate-array Basic2)))
#f
> (pprint-array (glue-array-from-array Basic1 (rotate-array (rotate-array Basic2)) (rotate-array
Basic1) (rotate-array Basic2)))
■ ■ □ ■
■ □ □ ■
■ ■ ■ ■
□ □ □ ■
> (beautiful (glue-array-from-array Basic1 (rotate-array (rotate-array Basic2)) (rotate-array Basic1)
(rotate-array Basic2)))
#f
> (pprint-array (glue-array-from-array Basic1 (rotate-array Basic1) (rotate-array (rotate-array
Basic1)) (rotate-array (rotate-array (rotate-array Basic1)))))
■ ■ ■ ■
■ □ □ ■
■ □ □ ■
■ ■ ■ ■
> (beautiful (glue-array-from-array Basic1 (rotate-array Basic1) (rotate-array (rotate-array Basic1))
(rotate-array (rotate-array (rotate-array Basic1)))))
#t
> (pprint-array (glue-array-from-array
(glue-array-from-array (glue-array-from-array black black white black) (glue-array-from-array
white black black black) (glue-array-from-array white white black white) (glue-array-from-array white
black black black))
(glue-array-from-array (glue-array-from-array white black black white) (glue-array-from-array
white white black black) (glue-array-from-array white black white white) (glue-array-from-array black
white black black))
(glue-array-from-array (glue-array-from-array black white black white) (glue-array-from-array
black black black white) (glue-array-from-array black white black black) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white white white) (glue-array-from-array black black black white) (glue-array-from-array white
white black black))))
■ ■ □ ■ □ ■ □ □
■ □ ■ ■ □ ■ ■ ■
□ ■ □ □ ■ □ □ ■
■ ■ □ ■ ■ ■ □ □
□ □ ■ □ ■ □ ■ ■
■ ■ □ □ □ ■ □ ■
□ □ ■ ■ ■ □ ■ □
■ ■ □ ■ ■ □ ■ ■
> (beautiful (glue-array-from-array
(glue-array-from-array (glue-array-from-array black black white black) (glue-array-from-array
white black black black) (glue-array-from-array white white black white) (glue-array-from-array white
black black black))
(glue-array-from-array (glue-array-from-array white black black white) (glue-array-from-array
white white black black) (glue-array-from-array white black white white) (glue-array-from-array black
white black black))
(glue-array-from-array (glue-array-from-array black white black white) (glue-array-from-array
black black black white) (glue-array-from-array black white black black) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white white white) (glue-array-from-array black black black white) (glue-array-from-array white
white black black))))
#f
> (pprint-array (glue-array-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
□ ■ ■ ■ □ □ ■ □
■ □ □ □ ■ ■ ■ ■
■ □ ■ ■ □ □ ■ □
■ □ □ ■ □ □ ■ □
■ □ ■ □ □ ■ ■ □
■ □ ■ ■ □ □ ■ □
■ □ □ □ ■ ■ □ ■
□ ■ ■ ■ □ □ ■ □
> (beautiful (glue-array-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
#t
> (beautiful (glue-tree-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
#t
> (pprint-tree (glue-tree-from-tree
(glue-tree-from-array (glue-array-from-array white black white black) (glue-array-from-tree black
black white white) (glue-array-from-tree black black black white) (glue-array-from-array black white
white black))
(glue-tree-from-array (glue-array-from-array white white black black) (glue-array-from-tree black
white black black) (glue-array-from-tree black white white black) (glue-array-from-array white white
white white))
(glue-tree-from-array (glue-array-from-array white black white white) (glue-array-from-tree black
white white black) (glue-array-from-array white black white black) (glue-array-from-tree black black
white white))
(glue-tree-from-array (glue-array-from-array black white white black) (glue-array-from-tree black
white black black) (glue-array-from-array white white black black) (glue-array-from-tree black white
black white))))
□ ■ ■ ■ □ □ ■ □
■ □ □ □ ■ ■ ■ ■
■ □ ■ ■ □ □ ■ □
■ □ □ ■ □ □ ■ □
■ □ ■ □ □ ■ ■ □
■ □ ■ ■ □ □ ■ □
■ □ □ □ ■ ■ □ ■
□ ■ ■ ■ □ □ ■ □
> (pprint-array (glue-tree-from-tree
(glue-tree-from-array (glue-array-from-array white black white black) (glue-array-from-tree black
black white white) (glue-array-from-tree black black black white) (glue-array-from-array black white
white black))
(glue-tree-from-array (glue-array-from-array white white black black) (glue-array-from-tree black
white black black) (glue-array-from-tree black white white black) (glue-array-from-array white white
white white))
(glue-tree-from-array (glue-array-from-array white black white white) (glue-array-from-tree black
white white black) (glue-array-from-array white black white black) (glue-array-from-tree black black
white white))
(glue-tree-from-array (glue-array-from-array black white white black) (glue-array-from-tree black
white black black) (glue-array-from-array white white black black) (glue-array-from-tree black white
black white))))
타입에러
> (pprint-tree (glue-tree-from-tree
(glue-tree-from-tree (glue-array-from-array white black white black) (glue-array-from-tree black
black white white) (glue-array-from-tree black black black white) (glue-array-from-array black white
white black))
(glue-tree-from-array (glue-array-from-array white white black black) (glue-array-from-tree black
white black black) (glue-array-from-tree black white white black) (glue-array-from-array white white
white white))
(glue-tree-from-array (glue-array-from-array white black white white) (glue-array-from-tree black
white white black) (glue-array-from-array white black white black) (glue-array-from-tree black black
white white))
(glue-tree-from-array (glue-array-from-array black white white black) (glue-array-from-tree black
white black black) (glue-array-from-array white white black black) (glue-array-from-tree black white
black white))))
타입에러
> (glue-array-from-tree (glue-tree-from-tree black black black black) (glue-tree-from-array white
white white white) (glue-tree-from-array black black black black) black)
크기 불일치
> (glue-array-from-array (glue-tree-from-tree black black black black) (glue-tree-from-array white
white white white) (glue-tree-from-array black black black black) black)
크기 불일치
> (glue-tree-from-array (glue-tree-from-tree black black black black) (glue-tree-from-array white
white white white) (glue-tree-from-array black black black black) black)
크기 불일치
> (glue-tree-from-tree (glue-tree-from-tree black black black black) (glue-tree-from-array white
white white white) (glue-tree-from-array black black black black) black)
크기 불일치
> (rotate-tree (glue-array-from-tree black black white white))
타입에러
> (rotate-array (glue-tree-from-array black black white white))
타입 에러
> (neighbor (list 1 2) (glue-array-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
위치 정의 불가
> (neighbor (list 1 2 3 1) (glue-array-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
위치 정의 불가
> (neighbor (list 1 2 4) (glue-array-from-array
(glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black))
(glue-array-from-array (glue-array-from-array white white black black) (glue-array-from-array
black white black black) (glue-array-from-array black white white black) (glue-array-from-array white
white white white))
(glue-array-from-array (glue-array-from-array white black white white) (glue-array-from-array
black white white black) (glue-array-from-array white black white black) (glue-array-from-array black
black white white))
(glue-array-from-array (glue-array-from-array black white white black) (glue-array-from-array
black white black black) (glue-array-from-array white white black black) (glue-array-from-array black
white black white))))
위치 정의 불가
> (glue (glue-array-from-array black black black black) (glue-array-from-array black black black
black) (glue-array-from-array black black black black) (glue-tree-from-tree black black black black))
타입 불일치
> (glue (glue-array-from-array (glue-array-from-array white black white black) (glue-array-from-array
black black white white) (glue-array-from-array black black black white) (glue-array-from-array black
white white black)) (glue-array-from-array black black black black) (glue-array-from-array black
black black black) (glue-array-from-tree black black black black))
크기 불일치
> (equal (glue-array-from-array black white black white) (glue-tree-from-array black white black
white))
#t
이제 match 테스트입니다.
결과 뒤에 ;; 로 덧붙인 것은 사용된 code를 좀 알아보기 쉽게?
regular expression처럼 표현해본 것입니다.
> (match (list 1) (bang (atom 1)))
#t ;; 1!
> (match (list 1 1) (bang (atom 1)))
#t ;; 1!
> (match (list 1 1 1) (bang (atom 1)))
#f ;; 1!
> (match (list 1 2 3) (dot (dot (atom 1) (atom 2)) (atom 3)))
#t ;; 123
> (match (list 1 2 3) (dot (atom 1) (dot (atom 2) (atom 3))))
#t ;; 123
> (match (list 1 0 0 1) (plus (bar (bar (bang (dot (dot (atom 1) (atom 0)) (atom 0))) (bang (dot
(atom 1) (atom 0)))) (bang (dot (atom 0) (atom 1))))))
#t ;; ((100)! | (10)! | (01)!)+
> (match (list 1 0 0 0 1) (plus (bar (bar (bang (dot (dot (atom 1) (atom 0)) (atom 0))) (bang (dot
(atom 1) (atom 0)))) (bang (dot (atom 0) (atom 1))))))
#t ;; ((100)! | (10)! | (01)!)+
> (match (list 0 1 0 1 1 0 1 0 0 1) (plus (bar (bar (bang (dot (dot (atom 1) (atom 0)) (atom 0)))
(bang (dot (atom 1) (atom 0)))) (bang (dot (atom 0) (atom 1))))))
#t ;; ((100)! | (10)! | (01)!)+
> (match (list 0 0) (plus (bar (bar (bang (dot (dot (atom 1) (atom 0)) (atom 0))) (bang (dot (atom 1)
(atom 0)))) (bang (dot (atom 0) (atom 1))))))
#f ;; ((100)! | (10)! | (01)!)+
> (match (list 1 0 0 1 0 1) (plus (bar (bar (bang (dot (dot (atom 1) (atom 0)) (atom 0))) (bang (dot
(atom 1) (atom 0)))) (bang (dot (atom 0) (atom 1))))))
#t ;; ((100)! | (10)! | (01)!)+
> (match (list 1 1) (dot (atom 1) (plus (atom 1))))
#t ;; 1(1+)
> (match (list 1 1) (dot (dot (atom 1) (plus (atom 1))) (atom 1)))
#f ;; 1(1+)1
> (match (list 1 0 0 0 1) (dot (dot (atom 1) (plus (atom 0))) (dot (atom 0) (atom 1))))
#t ;; 1(0+)01
> (match (list 1 0 1) (dot (dot (atom 1) (plus (atom 0))) (dot (atom 0) (atom 1))))
#f ;; 1(0+)01
> (match (list 1 1 0 1 1 0) (dot (dot (bang (atom 1)) (plus (atom 0))) (plus (dot (atom 1) (atom
0)))))
#f ;; 1!0+(10)+
> (match (list 1 1 0 0 0 1 0 1 0) (dot (dot (bang (atom 1)) (plus (atom 0))) (plus (dot (atom 1)
(atom 0)))))
#t ;; 1!0+(10)+
> (match (list 2 1 0 0 1 1 1 0 0 0 0 0 1 1 1 2) (dot (atom 2) (dot (plus (dot (plus (atom 0)) (plus
(atom 1)))) (atom 2))))
#f ;; 2(0+1+)+2
> (match (list 2 0 0 1 1 1 0 0 0 0 0 1 1 1 2) (dot (atom 2) (dot (plus (dot (plus (atom 0)) (plus
(atom 1)))) (atom 2))))
#t ;; 2(0+1+)+2
> (match (list 2 1 0 0 1 1 1 0 0 0 0 0 1 1 1 2) (dot (atom 2) (dot (plus (bar (plus (atom 0)) (plus
(atom 1)))) (atom 2))))
#t ;; 2((0+)|(1+))+2
> (match (list 2 0 0 1 1 1 0 0 0 0 0 1 1 1 2) (dot (atom 2) (dot (plus (bar (plus (atom 0)) (plus
(atom 1)))) (atom 2))))
#t ;; 2((0+)|(1+))+2
> (match (list 2 1 0 0 1 1 1 0 2 0 0 0 0 1 1 1 2) (dot (atom 2) (dot (plus (bar (plus (atom 0)) (plus
(atom 1)))) (atom 2))))
#f ;; 2((0+)|(1+))+2 |
|
위로 |
|
|
박상철
가입: 2009년 10월 10일 올린 글: 1
|
올려짐: 2009년10월10일 21:16 주제: 감사합니다! |
|
|
항상 감사합니다 |
|
위로 |
|
|
김학봉
가입: 2008년 9월 5일 올린 글: 70
|
올려짐: 2009년10월10일 21:41 주제: .. |
|
|
고마워~~ |
|
위로 |
|
|
윤용호
가입: 2008년 9월 23일 올린 글: 257
|
올려짐: 2009년10월12일 13:01 주제: 추가 |
|
|
타입 안따지는 neighbor, glue, rotate 테스트 좀 추가해보고
긴 매칭 추가해보았습니다.
> (pprint-array (glue-array-from-array (glue-array-from-tree black black white black)
(glue-array-from-array black white black black)
(glue-array-from-tree black black white black)
(glue-array-from-array black white white black)))
■ ■ ■ □
■ □ ■ ■
■ □ ■ ■
■ □ ■ □
> (pprint-array (glue-array-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black)))
■ ■ ■ □
■ □ ■ ■
■ □ ■ ■
■ □ ■ □
> (pprint-tree (glue-tree-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black)))
■ ■ ■ □
■ □ ■ ■
■ □ ■ ■
■ □ ■ □
> (pprint-tree (glue-tree-from-array (glue-array-from-tree black black white black)
(glue-array-from-array black white black black)
(glue-array-from-tree black black white black)
(glue-array-from-array black white white black)))
■ ■ ■ □
■ □ ■ ■
■ □ ■ ■
■ □ ■ □
> (pprint-tree (rotate-tree (glue-tree-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
■ ■ ■ ■
□ □ □ ■
■ ■ ■ ■
□ ■ ■ □
> (pprint-array (rotate-array (glue-array-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
■ ■ ■ ■
□ □ □ ■
■ ■ ■ ■
□ ■ ■ □
> (neighbor-array (list 0 2) (rotate-array (glue-array-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
6
> (neighbor-tree (list 0 2) (rotate-tree (glue-tree-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
6
> (neighbor-array (list 1 3) (rotate-array (glue-array-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
7
> (neighbor-tree (list 1 3) (rotate-tree (glue-tree-from-tree (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
7
> (neighbor (list 1 3) (rotate (glue (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
7
> (neighbor (list 1 3) (rotate (glue (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
7
> (neighbor (list 1 3) (rotate (glue (glue-tree-from-tree black black white black)
(glue-tree-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
7
> (neighbor (list 1 3) (rotate (glue (glue-array-from-tree black black white black)
(glue-array-from-array black white black black)
(glue-tree-from-tree black black white black)
(glue-tree-from-array black white white black))))
glue에서 타입 불일치
> (time (myMatch (list 1 0 0 1 1 2 2 2 2 2 0 0 0 1 0 1 0 0 1 2 2 2 2) (dot (dot (atom 1) (plus (bar (bar (bang (atom 0)) (bang (atom 1))) (plus (atom 2))))) (atom 2))))
cpu time: 47 real time: 46 gc time: 0
#t ;; 1 (0! | 1! | 2+) 2, string 길이는 23
> (time (myMatch (list 1 0 0 1 1 2 2 2 2 2 0 0 0 1 0 1 0 0 1 2 2 2 2 1) (dot (dot (atom 1) (plus (bar (bar (bang (atom 0)) (bang (atom 1))) (plus (atom 2))))) (atom 2))))
cpu time: 109 real time: 109 gc time: 0
#f ;; 1 (0! | 1! | 2+) 2, string 길이는 24
> (time (myMatch (list 1 0 0 1 1 2 2 2 2 0 1 0 1 2 2 0 0 1 1 1 1 1 1 2 0 0 0 1 0 1 0 0 1 2 2 2 2) (dot (dot (atom 1) (plus (bar (bar (bang (atom 0)) (bang (atom 1))) (plus (atom 2))))) (atom 2))))
cpu time: 1750 real time: 1750 gc time: 157
#t ;; 1 (0! | 1! | 2+) 2, string 길이는 37
> (time (myMatch (list 1 0 0 1 1 2 2 2 2 0 1 0 1 2 2 0 0 1 1 1 1 1 1 2 0 0 0 1 0 1 0 0 1 2 2 2 1) (dot (dot (atom 1) (plus (bar (bar (bang (atom 0)) (bang (atom 1))) (plus (atom 2))))) (atom 2))))
cpu time: 2688 real time: 2688 gc time: 250
#f ;; 1 (0! | 1! | 2+) 2, string 길이는 37 _________________ TA |
|
위로 |
|
|
|