MIT licensed by Li-yao Xia
Maintained by [email protected]
This version can be pinned in stack with:scanf-0.2.0.0@sha256:fafe7cf26d77d24c4cc4e71cfe95936f6d4cad3ccaf47e000c6770bf8d819a6f,1183

Module documentation for 0.2.0.0

Haskell scanf

Build Status Hackage

A lightweight library for one-off parsing and printing.

scanf [fmt|%d lazy %s and %d strict %s|]
      "3 lazy functions and 2 strict fields"
  = Just (3 :+ "functions" :+ 2 :+ "fields" :+ ())

Quasiquotes are optional. Format strings can also be defined with pure Haskell combinators.

printf (fmt_ (int . " lazy " % string . " and " % int . " strict " % string)
       (8 :+ "dogs" :+ 9 :+ "cats" :+ ())
  = "8 lazy dogs and 9 strict cats"

With quasiquotes, the following conversion strings are supported:

  • %d : signed integer (Int)
  • %l : signed integer (Integer, unbounded)
  • %f : floating point (Double)
  • %s : string of non-space characters (String)
  • %[...]: Scanset (String)
  • %c : single character (Char)
  • %% : parse/print a literal percent character

N.B.: in scanf, spaces in the format string match any number of whitespace character until the next nonspace character.


Though it also offers a printf function, scanf is thus named as there are only few other preexisting Haskell implementations, whereas many Haskell printf libraries can already be found on Hackage.

Similar to:

Changes

Changelog for scanf

See latest version of this changelog.

0.2.0.0 - 2026-11-07

  • Add scansets: %[abc] matches a string with only the characters a, b, c.

0.1.0.0 - 2018-03-18

  • Create scanf