문제
하고 싶 언어 설정에 복제,즉석에서와 #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는 두 가지 놀라운 소프트웨어 조각이며 거의 포기하지만이 일을하기 위해 노력할 가치가있었습니다.좋은 일을 위해 모든 덕분에 우리를 돕는 것을 돕는다.