이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김찬민
가입: 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을 만들어주는군요.
어디에서 문제가 있을지 저는 잘 모르겠어서 적절한 테스트케이스를 만들지 못하겠습니다. 혹시 비교해볼만한 테스트케이스가 있다면 공유해주시면 확인해볼 수 있을 것 같네요. |
|
위로 |
|
 |
|