문제

하고 싶 언어 설정에 복제,즉석에서와 #lang, 을 사용하지 않는,"-I"명령줄 인수입니다.하지만 이것은 나에게 오류가"읽기:#lang 사용하지 않는 현재 상황에서".

가 명령줄 스위치는 나는 없는가?또 어쩌면",metacommand"내가 사용할 수 있습니까?그 이유는 내가 필요하기 때문이 나는 것 같은를 보낼 수 있는 이맥스 버퍼 라켓 복제이지만,작동하지 않는 경우는 파일을 시작 #lang.

도움이 되었습니까?

해결책

[편집]

나는 얻을 수 없습니다 C-x C-b 과 작업 #lang 다.

하지만 버퍼 포함하는 #lang 로 전송할 수 있 복제에서 시작으로 간헐천 C-c C-a.이 스위치를 그렇지 않으며 입력하 모듈 에서 간헐천 드롭다운 메뉴입니다.가 있는 경우 버퍼에 대한 벅.rkt:

;; bugsy.rkt
#lang racket
(define k 6)
(define j 7)
(define (f lhs rhs)
   (+ lhs rhs))

입력 C-c C-a 나이에 복제:

racket@> ,enter "<filepath>/bugsy.rkt"
racket@bugsy.rkt>

내가 다음에 액세스 할 수 있습니다 이 모듈에 복제:

racket@bugsy.rkt> k
6
racket@bugsy.rkt> (f 3 4)
7

하고 싶다면 다른 모듈[거나 버퍼링 파일의]사용할 수 있습니다 ,enter 명령에 복제:

racket@bugsy.rkt> ,enter "clyde.rkt"
racket@clyde.rkt> ,enter "bonny.rkt"
racket@bonny.rkt>

예있의 ,enter 명령에서 설명서를 참조하십시오. 보 위의 공룡.

[Original]

에 따라켓 문서 #lang 는 매우 간단한 구문, 독자적으로 띄우는 언어 구문에서 무엇이든 다음에 공백 문자를 한 후에 #lang.이미 어떤 의미에서는 #lang 지에서 라켓의[나 다른 언어의 문법이 있다.대신 그것은 그 구현의 기능 리더의 일부분을 형성하는 큰"라켓 개발"생태계입니다.

간헐천[및 아마도 돌팔이 의사과 라켓-mode]이것을 처리해 분석 #lang 에 elsip 하기 전에 전달하는 코드 라 복제.에서 간헐천,작업 수행 간헐천-라켓에.엘.

구문 분석하는 함수에서 선 132:

(defun geiser-racket--language ()
  (or (cdr (geiser-racket--explicit-module))
      (save-excursion
        (goto-char (point-min))
        (if (re-search-forward "^#lang +\\([^ ]+\\)" nil t)
            (geiser-syntax--form-from-string (match-string-no-properties 1))))
      "#f"))

고 그것에 의해 호출 geiser-racket--geiser-procedure 선 166.

(defun geiser-racket--geiser-procedure (proc &rest args)
  (case proc
    ((eval compile)
     (format ",geiser-eval %s %s %s"
             (or (car args) "#f")
             (geiser-racket--language)
             (mapconcat 'identity (cdr args) " ")))
    ((load-file compile-file)
     (format ",geiser-load %S" (geiser-racket--find-module)))
    ((no-values) ",geiser-no-values")
    (t (format ",apply geiser:%s (%s)" proc (mapconcat 'identity args " ")))))

을 제공할 수 있습니다 당신의 시작점 롤링에 대한 당신의 자신의 코드를 한 경우 기존의 Emacs 모드지 않습니다.

다른 팁

; foo.rkt
#lang whatever
"hi"
.

는 기본적으로

와 동일합니다.
(module foo whatever
  "hi")
.

Quick Hack이므로 #lang 라인에서 슬라이스 할 수 있고, Lang을 빼내고, (module ...)-ing-ing int integ.

더 쉽게, 버퍼를 디스크에 저장하지 않으면 먼저 comint-send-input를 repl 버퍼로 보내거나 xrepl을 사용하지 않는 경우 ,enter /path/to/file.rkt를 사용하십시오.

또한 몇 가지 라켓 관련 모드를 언급 할 가치가 있습니다.

그 중 하나는 이미 원하는 것을 수행 할 수 있습니다. 또는 당신은 그들이 어떻게 작동하는지 엿볼 수 있습니다 (각각은이 모든 접근 방식이 다소 다릅니다).

라켓 & Geiser를 사용하여 #lang sicp를 사용하여 SiCP를 사용 하여이 머리를 감싸는 정말 어려움을 겪었습니다.마침내 알아 냈어.위의 모든 좋은 답변을 기반으로, 이는 무엇을 해야할지 생각 나게하는 의견이며 그 이유는 다음과 같습니다.

#lang sicp
;;C-c C-a loads #lang module into REPL (save before loading)
;;C-u C-c C-z is faster than C-c C-a
;;https://docs.racket-lang.org/sicp-manual/index.html
;;https://stackoverflow.com/questions/21008623/setting-language-with-lang-in-the-repl
(#%require sicp-pict)
(paint einstein)
.

라켓과 Geiser는 두 가지 놀라운 소프트웨어 조각이며 거의 포기하지만이 일을하기 위해 노력할 가치가있었습니다.좋은 일을 위해 모든 덕분에 우리를 돕는 것을 돕는다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top