게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

숙제 5-3: 테스트케이스
페이지로 1, 2  다음
 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월1일 20:38    주제: 숙제 5-3: 테스트케이스 인용과 함께 답변

이 테스트 케이스는 약합니다. 답글로 더 달아주세요.

코드:
(\x.x(x a)) (\x.x(x a))
((\x.x) z)(y)
(\u0.(\u1.(\u0.(u0 u1 u2)) (u0 x z)))
(\u0.(\u1.(\u0.(u0 u1 u2)) (u0 x z))) o
(\u0.(\u1.(\u0.(u0 u1 u2)) (u0 x z))) o u
((\u0.(\u1.(\u0.(u0 u1 u2)) (u0 x z))) u1)
((\u0.(\u1.(\u0.(u0 u1 u2)) (u0 x z))) u1) u0
((\x.x)(\x.z))((\x.x x x)(\x.x x x))
(\x. (\rest.\arg.(arg arg rest)) (x x)) (\x. (\rest.\arg.(arg arg rest)) (x x)) (\x.\y.x)


샘플 결과 (이름이 다를 수 있습니다)
코드:
((a) ((a) (a))) (((a) ((a) (a))) (a))
(z) (y)
\u0.\u1.((((u0) (x)) (z)) (u1)) (u2)
\u1.((((o) (x)) (z)) (u1)) (u2)
((((o) (x)) (z)) (u)) (u2)
\u3.((((u1) (x)) (z)) (u3)) (u2)
((((u1) (x)) (z)) (u0)) (u2)
z
\x.\y.x


김찬민 가 2014년11월4일 13:23에 수정함, 총 3 번 수정됨
위로
사용자 정보 보기 비밀 메시지 보내기
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월1일 22:18    주제: 인용과 함께 답변

첫 예제에서

(\x.x(x a)) (\x.x(x a))
-> (\x.x(x a)) ((\x.x(x a)) a)
-> ((\x.x(x a)) a) ( ((\x.x(x a)) a) a)
...
하며 무한루프 돌아야 하는 거 아닌가요?

제가 알기로는 Normal Order Reductions는 Applications일 때
왼쪽 것을 그냥 오른쪽으로 바로 넣는 것으로 알고 있는데 틀린가요?
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월1일 23:07    주제: 인용과 함께 답변

잘 전개하셨습니다. 마저 전개를 진행해볼게요.

(\x.x(x a)) (\x.x(x a))
-> (\x.x(x a)) ((\x.x(x a)) a)
-> ((\x.x(x a)) a) ( ((\x.x(x a)) a) a)
-> (a(a a)) ( ((\x.x(x a)) a) a)
-> (a(a a)) ( (a (a a)) a)

무한루프는 아닙니다. 조금 단계가 많긴 하죠.
위로
사용자 정보 보기 비밀 메시지 보내기
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월1일 23:27    주제: 인용과 함께 답변

그렇다면 푸는 순서가
1. 좌측 풀기
2. 우측 좌측에 대입

인것인가요?

저는
1. 우측 좌측에 대입
2. 전체 풀기
로 오해하였습니다. 감사합니다
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월1일 23:33    주제: 인용과 함께 답변

어떤 순서로 계산해도 첫번째 데이터는 항상 같은 모양이 나옵니다.

푸는 순서에 대해서는 아직 저도 제대로 배운 기억이 없어서 잘 모르겠네요. 수업 시간에 곧 알려주시지 않을까 생각합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월2일 21:39    주제: 인용과 함께 답변

푸는 순서에 따라 지옥을 맛볼 수 있는 경우를 추가했습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
심규민



가입: 2010년 10월 2일
올린 글: 21

올리기올려짐: 2014년11월2일 22:07    주제: 인용과 함께 답변

동일하게 나오네요 감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김광래



가입: 2013년 9월 21일
올린 글: 11

올리기올려짐: 2014년11월3일 3:35    주제: 무한 루프에 빠지지 않나요? 인용과 함께 답변

((\x.x)(\x.z))((\x.x x x)(\x.x x x))의 경우 뒷 부분을 먼저 풀게되면 무한 루프에 빠지지 않나요?
이런 경우는 https://ropas.snu.ac.kr/phpbb/viewtopic.php?t=4532 에서

- reduce하는 과정이 무한히 계속되는 입력은 채점에 사용하지 않겠습니다. 이러한 입력에 대해서는 자유롭게 처리하셔도 좋습니다. reduce하는 과정이 무한히 계속될 경우, 답이 될 수 있는 표현(lexp)이 여러 개 있을 수 있기 때문에, 위와 같이 결정하였습니다.

라고 하셨는데, 이것이 푸는 순서에 무관히 그렇게 하겠다는 것인지 잘 모르겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월3일 4:15    주제: 인용과 함께 답변

normal order로 푸는 것을 숙제에서 요구했기 때문에 유한하게 끝납니다
위로
사용자 정보 보기 비밀 메시지 보내기
강동옥



가입: 2009년 9월 18일
올린 글: 602

올리기올려짐: 2014년11월3일 13:50    주제: 인용과 함께 답변

네, normal order를 따라 reduce한다면 유한하게 끝나는 lambda expression이 입력으로 들어올 경우, 올바른 결과를 내놓아야 합니다. 이러한 테스트 케이스도 채점에 사용될 수 있는 것으로 하겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월4일 13:08    주제: 인용과 함께 답변

f(x) = if x then x else f(x); f(true)
에 해당하는 테스트케이스 추가했습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월8일 0:46    주제: 인용과 함께 답변

좀 큰 거 넣어봅니다.


코드:

(((\x.(((\f.((\x.(((((\a.(((a) ((\x.((\x.((\y.(y)))))))) ((\x.((\y.(x)))))))) (x)) ((\n.((\z.(z)))))) (((((\a.(((a) ((\x.((\x.((\y.(y)))))))) ((\x.((\y.(x)))))))) ((((\n.((\z.((n) (z)))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) ((\n.((\z.((n) (z))))))) ((\n.((\z.((((f) ((((\n.((\z.((n) (z)))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) (n)) ((((f) ((((\n.((\z.((n) ((n) (z))))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) (n)) (z))))))))))))) ((x) (x))))) ((\x.(((\f.((\x.(((((\a.(((a) ((\x.((\x.((\y.(y)))))))) ((\x.((\y.(x)))))))) (x)) ((\n.((\z.(z)))))) (((((\a.(((a) ((\x.((\x.((\y.(y)))))))) ((\x.((\y.(x)))))))) ((((\n.((\z.((n) (z)))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) ((\n.((\z.((n) (z))))))) ((\n.((\z.((((f) ((((\n.((\z.((n) (z)))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) (n)) ((((f) ((((\n.((\z.((n) ((n) (z))))))) ((\n.(((\p.((p) ((\x.((\y.(y)))))))) (((n) ((\p.((((\v.((\s.((\k.(((k) (v)) (s)))))))) (((\i.((\n.((\z.(((i) (n)) ((n) (z))))))))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))) (((\p.((p) ((\x.((\y.(x)))))))) (p)))))) ((((\v.((\s.((\k.(((k) (v)) (s)))))))) ((\n.((\z.(z)))))) ((\n.((\z.(z))))))))))) (x))) (n)) (z))))))))))))) ((x) (x)))))) ((\n.((\z.((n) ((n) ((n) ((n) ((n) ((n) ((n) ((n) (z)))))))))))))


코드:

\x.\y.(x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) ((x) (y)))))))))))))))))))))
위로
사용자 정보 보기 비밀 메시지 보내기
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월8일 17:41    주제: 인용과 함께 답변

나머지는 다 잘 나옵니다만...
마지막 것이
[img]https://www.facebook.com/photo.php?fbid=10201937443357242&set=a.1695785174011.67053.1819304760&type=1[/img]

가 나오네요..

으... 사진 업로드하는 방법 없나요...

페이스북에 나만보기 해놓고 업로드하며 쓰는데..[/img][/list]
위로
사용자 정보 보기 비밀 메시지 보내기
황재동



가입: 2014년 9월 2일
올린 글: 80

올리기올려짐: 2014년11월8일 17:43    주제: 인용과 함께 답변

나머지는 다 잘 나옵니다만...
마지막 것이
[img]https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xpa1/v/t1.0-9/10405487_10201937443357242_3968878809154597807_n.jpg?oh=a9d3d931c657a4a659b4d87a50ae637e&oe=54DDD400&__gda__=1428150294_2e6c378a4f8930ab513ac1db2225846a[/img]


가 나오네요..

으... 사진 업로드하는 방법 없나요...

페이스북에 나만보기 해놓고 업로드하며 쓰는데..
위로
사용자 정보 보기 비밀 메시지 보내기
김찬민



가입: 2010년 9월 6일
올린 글: 81

올리기올려짐: 2014년11월8일 19:28    주제: 인용과 함께 답변

혹시 몰라서 온라인에서 찾아볼 수 있는 툴 ( http://www.cburch.com/dev/lambda/index.html )을 사용하여 reduce를 시켜보았습니다. 해당 툴에서는 5882 스텝만에 21을 만들어주는군요.

어디에서 문제가 있을지 저는 잘 모르겠어서 적절한 테스트케이스를 만들지 못하겠습니다. 혹시 비교해볼만한 테스트케이스가 있다면 공유해주시면 확인해볼 수 있을 것 같네요.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2014) 시간대: GMT + 9 시간(한국)
페이지로 1, 2  다음
페이지 12

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay