String formatting in Racket

Hello, I'm new to racket. I want to learn format string like other languages. Chatgpt tells me these methods have. but it doesn't you know how way to learn string format methods?

Basic Format Types:

  1. ~a: Display the argument as-is.
  2. ~s: Display the argument as a string and escape special characters.
  3. ~v: Format the argument according to its natural "vector style."

Numeric Format Types:

  1. ~f: Fixed-point notation for floating-point numbers.
  2. ~e, ~E: Exponential notation for floating-point numbers.
  3. ~g, ~G: General notation, which uses either fixed-point or exponential notation, depending on the number's magnitude.

Width and Precision Control:

  1. ~w: Specify the minimum width for the argument.
  2. ~.n: Specify the number of decimal places for floating-point numbers (e.g., ~.2f for two decimal places).
  3. ~<n>: Specify the total width for the argument (e.g., ~<5> for a width of 5 characters).

Alignment and Padding:

  1. ~c: Center-align the argument within the field.
  2. ~r: Right-align the argument within the field.
  3. ~l: Left-align the argument within the field.
  4. ~a<fmt>: Apply a specific format to an argument within the field (e.g., ~a<~r> to right-align the argument).

String and Character Formatting:

  1. ~c: Display a character.
  2. ~s: Display a string.
  3. ~a: Display the argument as-is.

Custom Format Specifiers:

  1. ~<custom>: Define custom format specifiers and provide a corresponding function to format the argument.

Conditional Formatting:

  1. ~?: Conditionally format the argument based on a predicate.

Escape Sequences:

  1. ~~: Display a tilde (~) character.
  2. ~%: Insert a newline.
  3. ~,: Insert a space.
  4. ~t: Tab character.
  5. ~|: Form feed character.

Other Directives:

  1. ~n...~a: Format a list of arguments using the format string specified in ~n.
  2. ~i: Include the identifier of the current module.
  3. ~v: Include the values of module variables.
  4. ~:c: Apply a character escape.

Best to rely on the official docs rather than on ChatGPT :wink:
You probably want to use format — all the escape sequences are explained in fprintf.
Also take a look at ~a for formatting anything, and at ~r for formatting numbers.


Thank you very much for your support. This solved it for me. Please let me know if you have any sources to learn Racket better.It will be of great help to me


The Getting Started page has good guidance :

The racket community welcomes new learners so if you get stuck or don’t understand something you should ask questions here😁

Best regards

Stephen :beetle:


Thank you so much.for your helpI really appreciate your encouraging support for beginners


There's also the Racket Glossary, a project I started a while back. It's incomplete, but you might find something useful. :slight_smile: The entry on string formatting is there. The entry on strings is somewhat related.


thank you so much.I really appreciate your encouraging support for beginners

1 Like