drscheme assignment 1 programming

예전 drscheme 할때 만들었던 과제 입니다.
혹시 필요하신 분들에게 도움이 됐으면 합니다.

1.money and bank
money_and_bank.doc
banker1-7000049.scm
7000049.scm

2.msg
psp-7000049.doc
binary.doc
messages-7000049.scm

3. PSP_Ex6.1_SOLUTION-WITH_DESK_CHECK.doc
DESK_CHECK.doc
contacts-7000049-4.scm

[DCGET] 수정-2 플레쉬 실행방지 dcGET

얼마전에 플레쉬 실행방지 기능을 추가해서 올렸는데

알고보니 한가지 까먹은 부분이 있더군요.

그것에 대한 수정본입니다.

dcGET.html

[DCGET] 수정 - 귀찮은 플레쉬 실행 안하기 dcGET

꽤나 오랜만에 수정하네요. 하하...

이전 수정에서 플레쉬까지 보여주다보니 듣기 싫은 노래나 기타 등등이 덤으로 실행되어 버리는 난감한 일이 발생하더군요.

그래서 플레쉬는 기본적으로 실행이 거부된 상태로 실행하고

필요하면 실행 버튼을 클릭해서 실행할 수 있고

다시 중지 버튼을 클릭해서 중지할 수 있는 기능을 추가했습니다.

혹시 기타 불편한 점이 오류가 있으면 댓글 달아주세요~

[dcGET.html]

DrScheme을 말하다 - 부제 : 너 왜 그러니? programming

모종의 이유로 요즘 DrScheme 이라는 프로그래밍 개발 툴을
사용하고 있습니다.

기본적으로 학습용 스크립트 프로그래밍을 제공 하고 있는데

그 스크립트 코딩이 처음에는 비교적 쉽습니다.

(+ 1 2) -> 3
(if (> 1 2) #t #f) -> #f


라는 식으로 간단하죠.

하지만 세상이 그리 녹녹하지 않은 듯 이 놈도 그리 녹녹하지 않답니다.







Part 1 : Loop

가장 먼저 이 분은 loop 따위는 취급하지 않는 대범함을 보인답니다.
언어에
for와 while이 없답니다.

for와 while....
for와 while....
for와 while....
for와 while....

 

그럼 어떻게 loop를 처리하느냐
이분은 정말 대범한 분이십니다.

그래서 재귀함수를 쓴답니다.



네 간단한 예로

int x = 0;
for(int i =0; i < 10; i++) {
    x += i;
}


 

라는 간단한 코딩을 하기 위해서

int test(int index) {
    if(index < 10) {
        return index + test(index-1);
    } else {
        return 0;
    }
}

(define (test index)
    (cond [(< index 10)
           (+ index (test (+ index 1)))]
          [else 0]))

(test 0)


라는 식으로 구현을 해야한다는 거죠..


Part 2 : array

그리고 하나더 배열에서 한번 빵 터지게 돼었답니다.

function arrTestFunc() {
 var x = new Array();
 for ( i =0; i < 5; i++)
  x[i] = i;
}


라는 것을 코딩하려면

(define (test index)
    (cond [(< index 10)
           (+ index (test (+ index 1)))]
          [else 0]))
(test 0)


이런식으로 짜줘야 합니다.

이런 경우 뭐 이런 거 갖고 그러냐 그냥 재귀함수(?) 쓰는 거 빼고 그닥 어려운 것도 없네 뭐 하시겠지만

다음과 같은 경우는 어떨까요?

function arrTestFunc() {
 var x = new Array();
 for ( i =0; i < 5; i++)
  x[4 - i] = i;www
}



위는 이전 코드를 거꾸로 돌린 것입니다.

밑의 코드는 이 반전된 루프를 같은 DrScheme에서 구현한 코드입니다.


(define (arrTestFunc index)
  (cond [(< index 5)
         (cons  (arrTestFunc (+ index 1)) index )]
        [else empty]
  ))
(arrTestFunc 0)


뭐야 이거 간단하잖아 그냥 순서만 바꾸면 돼잖아 라고 하시겠지만..

실제 결과는

(((((() . 4) . 3) . 2) . 1) . 0)

라는 크고 대범한 결과를 만들어 내주시는 센스를 발휘하십니다..

그리고는 "이거슨 배열이 아니여 그러니까 배열로 못 써" 라는 친절한 에러문도 출력해주시죠.


Conc

결론은 답이 없습니다. 까라면 까야죠... 그래서 열심히 분석 중이랍니다.

혹시 이런 것 비슷한 걸 쓰시는 분 없나요?

우리 모두 자료 공유를 해보아요~


Fedex - Cast Away Commercial 빈둥빈둥

fedex에서 만든 cast away를 페러디한 광고입니다.






광고라서 딱히 둘 곳이 없어서 방송&연예로...

1 2 3 4 5 6 7 8 9