No description
Find a file
2019-05-11 08:36:27 +09:00
docs ♻️ skijs.nim -> ski_js.nim 2019-05-11 08:36:27 +09:00
examples change proc name and add new proc. 2019-04-23 23:19:41 +09:00
src ♻️ skijs.nim -> ski_js.nim 2019-05-11 08:36:27 +09:00
tests change proc name and add new proc. 2019-04-23 23:19:41 +09:00
.gitignore 💡 change example code 2019-04-23 06:43:28 +09:00
.travis.yml ♻️ change task name 2019-04-23 23:30:21 +09:00
README.adoc 📝 fix heading 2019-05-11 07:17:20 +09:00
ski.nimble ♻️ skijs.nim -> ski_js.nim 2019-05-11 08:36:27 +09:00

:toc: left
:sectnums:

= ski

Library for calculating https://en.wikipedia.org/wiki/SKI_combinator_calculus[SKI combinator].

image:https://travis-ci.org/jiro4989/ski.svg?branch=master["Build Status", link="https://travis-ci.org/jiro4989/ski"]

== Development

nim -v

  Nim Compiler Version 0.19.4 [Linux: amd64]
  Compiled at 2019-02-01
  Copyright (c) 2006-2018 by Andreas Rumpf

  git hash: b6d96cafc8bcad1f3d32f2910b25cd11a93f7751
  active boot switches: -d:release


nimble -v

  nimble v0.9.0 compiled at 2018-10-27 18:10:03
  git hash: couldn't determine git hash

== Install

[source,bash]
nimble install ski

== Usage

=== Simple examples

[source,nim]
----
import ski

echo "Sxyz".calculate(combinators)
----

Output is `xz(yz)` .

=== Other examples

See `examples` directory.
Run example code.

==== Calc arguments example

Run

[source,bash]
cd examples/calc_args
nim c -r main.nim Sxyz

Output

  Before : Sxyz
  After  : xz(yz)

==== Read file example

Run

[source,bash]
cd examples/read_file
nim c -r main.nim

Output

  Sxyz
    -> xz(yz)
  SKxz
    -> Kz(xz)
    -> z
  <true>xz
    -> Kxz
    -> x
  <false>xz
    -> SKxz
    -> Kz(xz)
    -> z
  SKIKSIKIKISKIKIS
    -> KK(IK)SIKIKISKIKIS
    -> KSIKIKISKIKIS
    -> SKIKISKIKIS
    -> KK(IK)ISKIKIS
    -> KISKIKIS
    -> IKIKIS
    -> KIKIS
    -> IIS
    -> IS
    -> S
  S<true><true><false>
    -> <true><false>(<true><false>)
    -> K<false>(<true><false>)
    -> <false>
    -> SK

== Document

* https://jiro4989.github.io/ski/ski.html

== Web application of SKI combinator calculator

I created simple SKI combinator calculator on web application.

https://jiro4989.github.io/ski

Javascript library of SKI combinator of the application is generated by this
module (`nimble js`).