Formatting alternatives and similar libraries
Based on the "Functional Programming" category.
Alternatively, view Formatting alternatives based on common mentions on social networks and blogs.
-
Hookah
DISCONTINUED. Hookah is a functional library for Swift. It's inspired by LoDash, Underscore project.
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Formatting or a related project?
README
Formatting
Type-safe, functional string formatting in Swift.
Inspired by Chris Done's excellent Haskell library.
import Formatting
format("Hello, " % string % "!", "world")
// "Hello, world!"
Introduction
Traditional string formatting methods (interpolation, printf
, and template strings) can lead to subtle (and not so subtle) runtime bugs.
print("Hello, \(thing)!") // Hello, nil!
print("Hello, \(thing)!") // Hello, Optional("world")!
NSLog(@"Hello, %@!", thing); // Hello, (null)!
Formatting brings compile-time checks.
print("Hello, " % string % "!", thing) // Value of optional type String? not unwrapped
And composability.
let greet =
format("Hello, " % string % "!")
greet("world") // Hello, world!
<!-- ## Formatters -->
Composing formatters
Use %
to build a formatter with strings and other formatters.
format(string % " is " % int % "years old.", "Alice", 25)
// "Alice is 25 years old."
Use <>
to pass the previous formatter argument to the next formatter.
format(yyyy % "-" <> MM % "-" <> dd, Date())
// "2016-06-28"
Use .%
to feed the result of one formatter into another.
format(left(2, "0") .% hex, 10)
// "0a"
Call format
without arguments to return a curried formatter function.
let log =
format(right(5) % " -- [" % iso8601 % "] " % string)
let infoLog = log("INFO")
let debugLog = log("DEBUG")
infoLog(Date())("Logging in...")
// "INFO -- [2016-06-28T12:34:56Z] Logging in..."
debugLog(Date())("Logged in successfully!")
// "DEBUG -- [2016-06-28T12:34:56Z] Logged in successfully!"
License
Formatting is available under the MIT license. See [the LICENSE file](./LICENSE.txt) for more information.
*Note that all licence references and agreements mentioned in the Formatting README section above
are relevant to that project's source code only.