How to use the command "guile" (with examples)
Guile is a Scheme interpreter that allows users to interact with the Scheme programming language. This article provides examples of different use cases for the “guile” command, including starting a REPL, executing a script, executing a Scheme expression, and listening for remote REPL connections.
Use case 1: Start a REPL (interactive shell)
Code:
guile
Motivation: Starting a REPL (Read-Eval-Print Loop) can be useful for experimenting with Scheme code, debugging, or simply exploring the language interactively. It provides a way to enter Scheme expressions and immediately see their results.
Explanation: Running the “guile” command without any arguments starts a REPL, which is an interactive shell where you can enter Scheme expressions and get their results.
Example output:
GNU Guile 3.0.5
Copyright (C) 1995-2021 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,news' for a list of new features in this release.
Enter `,help' for help.
scheme@(guile-user)>
Use case 2: Execute the script in a given Scheme file
Code:
guile script.scm
Motivation: Executing a Scheme script allows you to run pre-existing Scheme programs saved in a file. This is useful when you have a larger program or a set of functions that you want to run without typing them directly into the REPL.
Explanation: The “guile” command followed by the name of a Scheme file (in this case “script.scm”) executes the script in that file.
Example output:
output of the script execution
Use case 3: Execute a Scheme expression
Code:
guile -c "expression"
Motivation: Executing a single Scheme expression directly from the command line can be useful for quick calculations or testing small snippets of code without the need to create a separate script file.
Explanation: The “-c” option followed by the Scheme expression in quotes instructs Guile to execute the provided expression.
Example output:
result of the expression
Use case 4: Listen on a port or a Unix domain socket for remote REPL connections
Code:
guile --listen=port_or_socket
Motivation: Listening on a port or a Unix domain socket allows other programs or users to connect to Guile remotely and interact with it using a REPL. This can be useful for collaborative programming or for accessing Guile functionality from another program.
Explanation: The “–listen” option followed by a port number or a Unix domain socket path sets up Guile to listen for remote REPL connections on the specified port or socket.
Example output:
Listening on port_or_socket
Conclusion:
The “guile” command provides a versatile and powerful way to interact with the Scheme programming language. Whether you want to start a REPL, execute scripts or expressions, or listen for remote REPL connections, Guile offers a range of options to suit your needs.