racket

    12

    6답변

    그래서 목록에서 마지막 요소를 제거해야합니다. 예를 들어 목록이 있다고 가정 해 봅시다. (1 2 3 4)입니다. 나는 반환해야합니다 (1 2 3) 내 생각 : reverse(list) car(list) reverse(list) 계획 (라켓)에서 reverse 기능이 있습니까?

    0

    2답변

    평가 될 때 obj의 복사본을 반환하는 Scheme 식을 반환하는 하나의 인수 - obj -의 함수를 구현해야합니다. 문제 해결 방법에 대한 아이디어가 있으십니까?

    1

    1답변

    연습으로 중첩 단항으로 let*의 소스 코드를 나타내는 문자열을 다시 작성하려고합니다. 여기 내 최선의 노력입니다 :이 `(let* ((,<var> ,<val>) ,<clauses>) ,<exprs>) 이 같은 문자열과 일치하지 않습니다 : (define let*→nested-unary-lets (match-lambda (`(let*

    0

    1답변

    보다 기본적인 함수로 특정 함수를 다시 쓰기 위해 match-lambda를 사용하고 있습니다. 여기 (define let*→nested-unary-lets (match-lambda (`(let* (()) ,<exprs>) `(let() ,<exprs>)) (`(let* ((,<var> ,<val>)) ,<exprs>)

    0

    1답변

    필자는 match-lambda를 사용하는 annotate라는 함수를 작성하는데, 종종 annotate에 대한 재귀 호출을 사용한다. 다음은 패턴 일치 중 하나입니다. (`(lambda (,<param1> . ,<params>) ,<stmts>) `(CLOSURE ENV (,<param1> . ,<params>) `(lambda (ENV) ,(ma

    1

    1답변

    필자는 annotate에 대한 재귀 호출과 함께 종종 match-lambda를 사용하는 함수 annotate를 작성하고있다. 다음은 패턴 및 일치 중 하나입니다. (`(,<param> . ,<params> (lambda (,<args>) ,<stmt> . ,<stmts>)) `(CLOSURE ENV ,(append (append `(,<param>) `(

    0

    1답변

    match-lambda를 사용하여 상당히 복잡한 패턴 일치를 시도하고 있습니다. 그러나 패턴과 일치에 대한 구문을 해독하는 데 많은 어려움을 겪고 있으며 인터넷 검색으로 괜찮은 참조를 찾지 못했습니다. 이 패턴을 사용하여 : (`(PARAMS: (,<arg>)) <match> 는하지만이 작동하지 않습니다 간단되어야한다 보인다 한 가지는 문자열 '((Y

    6

    2답변

    정의 일치 확장에 대해서는 개념을 설명하기위한 희귀 자료와 예제 코드가 있습니다. 나는 힘든 시간이 문서의 말씀 "디코딩"하는 데 : 경기 확장기에 (define-match-expander id proc-expr) (define-match-expander id proc-expr proc-expr) 귀속 ID를. 첫 번째 proc-expr 서브 표현식은

    0

    1답변

    필요 반환이의 : (match `(PARAMS (x) (lambda (y) (+ x y))) [`(PARAMS (,var) (lambda (,arg) (,stmt))) 'yep] [otherise 'nope]) ==> nope 은 어떤 조언에 감사드립니다. 감사합니다.

    1

    1답변

    구조체 작업 : (struct Binding (id (value #:mutable))) 이 구조체 것은 내가 아이디 = x와 값 = 3 을 기대하는 곳과 같은 (set! x 3) 바인딩 변수를 나타냅니다 이 구조체를 만들고 초기화하려면 어떻게해야합니까? id과 value의 값을 얻고 value 값을 설정하려면 어떻게해야합니까?