Как написать схему программы быстро в Emacs - PullRequest
1 голос
/ 04 октября 2011
(define (cube guess x)
    (if (good-enough? guess x)
     guess
     (improve guess x)))

Я использую emacs + Racket, но когда я пишу в Racket, он не завершается автоматически. Я также не могу написать Анти-скобки в одной строке ,, как это (define (cube guess x) ). Я хочу использовать клавишу «return», чтобы сделать следующую строку анти-скобками, однако интерпретатор схемы вычислит выражение, тогда оно будет неверным.

тогда, если мы напишем код в буфере режима схемы, это может немного беспокоить, мы должны выберите регион, затем вычислите в другом буфере

Кто-нибудь скажет мне несколько лучших способов? извините за мой плохой английский!

Ответы [ 3 ]

3 голосов
/ 04 октября 2011

Мне кажется, что вы используете интерактивный интерпретатор, и когда вы нажимаете клавишу «возврат» в середине строки, он отправляет выражение для оценки, а не позволяет вам редактировать его дальше. Это правильно? Если это так, я бы посоветовал вам взглянуть на пакет «Кряк» Нила Ван Дейка, который (IIRC) предназначен для того, чтобы вы могли редактировать код Racket с помощью emacs.

Если вы не состоите в браке с emacs, то, конечно, я бы также предложил попробовать использовать DrRacket.

1 голос
/ 05 октября 2011

Похоже, вы используете интерпретатор схемы из Emacs.Это хорошее начало для написания небольших функций, но вы действительно хотите использовать рабочий процесс REPL (Read-Eval-Print Loop).К счастью, в Emacs встроена готовая схема REPL, и, как уже упоминалось, есть дополнительные режимы (например, Quack), которые расширяют возможности.

В модели REPL вы можете свободно набирать выражения винтерпретатор, если вы хотите их опробовать, но большая часть вашего кода должна находиться в файле, который вы пишете.Внутри этого буфера, если у вас работает интерпретатор схемы (Mx run-схема), вы можете отправить sexps интерпретатору для оценки без копирования вручную с помощью Cc Ce.Вы можете использовать CMx, чтобы сделать то же самое.

Вы можете скомпилировать весь файл с помощью Cc Ck, и если у вас есть несколько выражений, которые вы хотите отправить вместе, возьмите их в область и используйте Cc Cr для отправкирегион к интерпретатору.

Есть несколько других команд, которые облегчают передачу вашего кода интерпретатору;вы можете прочитать о них больше в сеансе REPL, нажав Ch m, чтобы описать сочетания клавиш для вашего текущего режима.

0 голосов
/ 04 октября 2011

Что вообще делает этот код?Вам не хватает "если"?Это может быть частью причины, по которой переводчик не работает .?

(если (достаточно хорошо? Угадать х) угадать (улучшить догадку х))

Извините, если я просто нене понимаю, чего вы пытаетесь достичь.

...