IN system / repl / common в дистрибутиве схемы guile вы можете увидеть реализацию repl-prompt:
(define (repl-prompt repl)
(cond
((repl-option-ref repl 'prompt)
=> (lambda (prompt) (prompt repl)))
(else
(format #f "~A@~A~A> " (language-name (repl-language repl))
(module-name (current-module))
(let ((level (length (cond
((fluid-ref *repl-stack*) => cdr)
(else '())))))
(if (zero? level) "" (format #f " [~a]" level)))))))
Это означает, что у вас есть приглашение repl option ', которое является лямбда
(lambda (repl) ...)
(но это также может быть простая строка) Чем может выводить все, что вы хотите.
У вас есть,
https://www.gnu.org/software/guile/manual/html_node/System-Commands.html#System-Commands
, так что вы можете сделать
scheme@(guile-user)> ,option prompt ">"
>
>(+ 1 2)
$1 = 3
>,option prompt (lambda (repl) ">>")
>>(+ 2 3)
$2 = 5
>>
Но что делать, если вы хотите добавить приглашение в ваш файл .guile?
Если вы поместите их в .guile (до создания приглашения)
(use-modules (system repl common))
(repl-default-option-set! 'prompt ">>>")
вы получите
>>> (+ 1 2)
3
Вы также можете создавать новые реплы, но это для другого вопроса
Для вашего конкретного примера вы можете попробовать
> ,option prompt (lambda (repl)
(format #f "~a@~a(~a)>"
(getenv "USER")
(vector-ref (uname) 1)
(getcwd)))
(но в одной строке) и получите
stis@lapwine(/home/stis/src/guile/module/system/repl)> (+ 1 2)
3
Надеюсь, что это поможет.