sanctuary-show

WebJar for sanctuary-show

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

sanctuary-show
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

sanctuary-show
WebJar for sanctuary-show
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/sanctuary-js/sanctuary-show

Download sanctuary-show

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/sanctuary-show/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>sanctuary-show</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/sanctuary-show/
implementation 'org.webjars.npm:sanctuary-show:1.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/sanctuary-show/
implementation ("org.webjars.npm:sanctuary-show:1.0.0")
'org.webjars.npm:sanctuary-show:jar:1.0.0'
<dependency org="org.webjars.npm" name="sanctuary-show" rev="1.0.0">
  <artifact name="sanctuary-show" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='sanctuary-show', version='1.0.0')
)
libraryDependencies += "org.webjars.npm" % "sanctuary-show" % "1.0.0"
[org.webjars.npm/sanctuary-show "1.0.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

sanctuary-show

Haskell has a show function which can be applied to a compatible value to produce a descriptive string representation of that value. The idea is that the string representation should, if possible, be an expression which would produce the original value if evaluated.

This library provides a similar show function.

In general, this property should hold: eval (show (x)) = x. In some cases parens are necessary to ensure correct interpretation ({}, for example, is an empty block rather than an empty object in some contexts). Thus the property is more accurately stated eval ('(' + show (x) + ')') = x.

One can make values of a custom type compatible with show by defining a @@show method. For example:

//# Maybe#@@show :: Maybe a ~> () -> String
//.
//. ```javascript
//. > show (Nothing)
//. 'Nothing'
//.
//. > show (Just (['foo', 'bar', 'baz']))
//. 'Just (["foo", "bar", "baz"])'
//. ```
Maybe.prototype['@@show'] = function() {
  return this.isNothing ? 'Nothing' : 'Just (' + show (this.value) + ')';
};

show :: Showable a => a -⁠> String

Returns a useful string representation of the given value.

Dispatches to the value's @@show method if present.

Where practical, show (eval ('(' + show (x) + ')')) = show (x).

> show (null)
'null'

> show (undefined)
'undefined'

> show (true)
'true'

> show (new Boolean (false))
'new Boolean (false)'

> show (-0)
'-0'

> show (NaN)
'NaN'

> show (new Number (Infinity))
'new Number (Infinity)'

> show ('foo\n"bar"\nbaz\n')
'"foo\\n\\"bar\\"\\nbaz\\n"'

> show (new String (''))
'new String ("")'

> show (['foo', 'bar', 'baz'])
'["foo", "bar", "baz"]'

> show ([[[[[0]]]]])
'[[[[[0]]]]]'

> show ({x: [1, 2], y: [3, 4], z: [5, 6]})
'{"x": [1, 2], "y": [3, 4], "z": [5, 6]}'
org.webjars.npm

Sanctuary

Versions

Version
1.0.0