2012-09-05 1 views
0

내가 아닌 빈 문자열들과 음이 아닌 정수 내가하고 수익을 취하는 절차의 선택을 정의이제도 문자열 조작과 정의 절차

를 해결하는 방법에 대해 아무 생각이 없기 때문에이 문제를 해결하는 데 도움이 필요 s 내의 인덱스 i의 문자로 구성되는 길이 1의 부분 캐릭터 라인 i가 문자열 s에 대한 적법한 색인이라고 가정합니다.

~ ("고양이"를 선택 0)

"C"

~ ("고양이"를 선택 1)

"A"

~ ("고양이"를 선택 2)

"t"

+0

이것은 숙제 문제처럼 들립니다. – inquiryqueue

답변

1

이 시도, 그것은 표준 계획 절차를 사용하여 간단합니다

string-ref 지정된 인덱스에있는 문자열에서 문자를 반환하고 string 절차는 길이 하나의 문자열로 문자를 회전 : 그것이 작동하는 방법
(define (pick str idx) 
    (string (string-ref str idx))) 

는 여기에 있습니다.

substring 절차를 사용해야 할 필요는 없습니다 (단 하나의 문자 만 필요하기 때문에).하지만 유효한 대안입니다.

+0

정확히 이것을 사용하여 절차를 어떻게 만드나요? 이해할 수 없다 – Jeremiah

+0

String-ref는 주어진 인덱스의 문자열에서 문자를 가져오고 문자열 프로시 저는 길이가 하나 인 부분 문자열로 문자를 바꾼다 –

1

하나의 해결책은 substring을 사용하는 것입니다.

> (substring "Scheme" 1 3) 
"ch" 

여기에서 "구성표"라는 단어의 번호가 매겨집니다.

  • 문자 S는 인덱스를 가지고 0
  • 문자 C는 지수를 갖는 1
  • 편지 H 인덱스를 갖는 2
  • 문자 E는 문자 m은 보유 3.
  • 인덱스를 가지고 인덱스 4.
  • 문자 전자는 지수에게 있습니다 5.

표현 (substring "Scheme" 1 3) 새로운 strin한다 g는 이고 숫자는 1에서 2 사이입니다. 인덱스 3은 새 문자열에없는 첫 번째 인덱스 입니다. 당신은 단지 하나 개의 문자를 선택하는 원하기 때문에

,이 시도 :

> (substring "Scheme" 1 2) 
"c" 
> (substring "Scheme" 2 3) 
"h" 

지금 당신은 당신의 자신의 함수를 정의 할 수 있습니다

(define (pick a-string i) 
    (substring a-string ??? ???)) 

무엇을해야을 ??? 있다?

+0

+1은 spoonfeeding이 아니라 p – leppie