
# Prose

Prose is a programing language that attempts to emphesize significance of
communicating solution to a problem. In prose solutions are expressed in
a natural language (Just as our everyday thoughts are) while procedural
thoughts are expressed in more formal syntax. In a way prose inverts idea
of putting comment into code. Primary program input is in [markdown][],
with embedded code blocks for expressing implementation details. Language
syntax used in code blocks can varry to match best specifics of the
solution. Never the less, all of the "prose" code is desugars to an
internal [AST][] representation in [lisp][] (Or rather in [wisp][] to be
precise, that is [clojure][]-like dialect of lisp). Embedded code blocks
there for can be expressed in arbitrary syntax forms as long as reader
macro desugaring that form to lisp is registered. As a matter of fact
reader macros could also choose to desugar to [JS][], since that a final
compile target (although this can be little bit more tricky than targeting
lisp form). Code blocks are expected to start with [shebang][] to identify
syntax form used by them. For example code block in `clojure` syntax form
will be expressed as follows:

    #! clojure
    (defn hello [name]
      (print (str "Hello " name)))

Program may have another code blocks expressed in other syntax forms, for
example next code block can be in [JS][]:

    #! javascript
    function bye(name) {
      print("Bye " + name)
    }


## Compiler

[markdown]:http://daringfireball.net/projects/markdown
[marked]:https://github.com/chjj/marked
[Literate_programming]:http://en.wikipedia.org/wiki/Literate_programming
[Literate coffeescript]:https://gist.github.com/3790135
[code block]:http://daringfireball.net/projects/markdown/syntax#precode
[shebang]:http://en.wikipedia.org/wiki/Shebang_%28Unix%29
# Prose

Prose is a programing language that attempts to emphesize significance of
communicating solution to a problem. In prose solutions are expressed in
a natural language (Just as our everyday thoughts are) while procedural
thoughts are expressed in more formal syntax. In a way prose inverts idea
of putting comment into code. Primary program input is in [markdown][],
with embedded code blocks for expressing implementation details. Language
syntax used in code blocks can varry to match best specifics of the
solution. Never the less, all of the "prose" code is desugars to an
internal [AST][] representation in [lisp][] (Or rather in [wisp][] to be
precise, that is [clojure][]-like dialect of lisp). Embedded code blocks
there for can be expressed in arbitrary syntax forms as long as reader
macro desugaring that form to lisp is registered. As a matter of fact
reader macros could also choose to desugar to [JS][], since that a final
compile target (although this can be little bit more tricky than targeting
lisp form). Code blocks are expected to start with [shebang][] to identify
syntax form used by them. For example code block in `clojure` syntax form
will be expressed as follows:

    #! clojure
    (defn hello [name]
      (print (str "Hello " name)))




[markdown]:http://daringfireball.net/projects/markdown
[marked]:https://github.com/chjj/marked
[Literate_programming]:http://en.wikipedia.org/wiki/Literate_programming
[Literate coffeescript]:https://gist.github.com/3790135
[code block]:http://daringfireball.net/projects/markdown/syntax#precode
[shebang]:http://en.wikipedia.org/wiki/Shebang_%28Unix%29 # Forms

Wisp emphesizes importance of the idea over implementation details
and there for plain source is just a documentation in *Markdown*
format.

Actual code blocks are plain markdwond code blocks like one below

    #!wisp
    (defn hello [name]
      (print (str "Hello " name)))


# Prose

Prose is a programing language that attempts to emphesize significance of
communicating solution to a problem. In prose solutions are expressed in
a natural language (Just as our everyday thoughts are) while procedural
thoughts are expressed in more formal syntax. In a way prose inverts idea
of putting comment into code. Primary program input is in [markdown][],
with embedded code blocks for expressing implementation details. Language
syntax used in code blocks can varry to match best specifics of the
solution. Never the less, all of the "prose" code is desugars to an
internal [AST][] representation in [lisp][] (Or rather in [wisp][] to be
precise, that is [clojure][]-like dialect of lisp). Embedded code blocks
there for can be expressed in arbitrary syntax forms as long as reader
macro desugaring that form to lisp is registered. As a matter of fact
reader macros could also choose to desugar to [JS][], since that a final
compile target (although this can be little bit more tricky than targeting
lisp form). Code blocks are expected to start with [shebang][] to identify
syntax form used by them. For example code block in `foo`



[markdown]:http://daringfireball.net/projects/markdown
[marked]:https://github.com/chjj/marked
[Literate_programming]:http://en.wikipedia.org/wiki/Literate_programming
[Literate coffeescript]:https://gist.github.com/3790135
[code block]:http://daringfireball.net/projects/markdown/syntax#precode
[shebang]:http://en.wikipedia.org/wiki/Shebang_%28Unix%29
