JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q61262F
  • License BAN-ZHINESE-USING

A library for parsing and evaluating dice expressions.

Package Exports

  • dicescripts
  • dicescripts/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dicescripts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

DiceScript

logo

A safe and fast dice expression evaluator base on Idris2.


What is DiceScript?

DiceScript is a superset of Mathematical (Arithmetic) Expression, it supports many advanced features, such as:

  • Lambdas (Anonymous functions): \x -> x+1 (Refers to Haskell lambda syntax)
  • Array types: [1, 2, 3]
  • Infix operaters: Dice d, Range .., Random Integer ~, Concatenation ++, Colon :
  • More math functions: round, floor, ceil, abs, sqrt...
  • Array functions: map, filter, fold, reduce, flatMap, every, some, length, reverse, sort, include ...
  • Set functions: union, intersection, offset ...
  • Random functions: int, real, bool, shuffle, pick ...
  • List comprehension (Similar to Mathematical Set): [x*2 | x <- [1..5]]
  • Math

DiceScript is not a programming language, it is a DSL (Domain Specific Language) of base expression, an legal programm of DiceScript has only a expression.

What is Idris2?

Idris2 is a dependently typed and functional programming language, it powerfully ensures type and program safety.

Guide

Please refer to the DiceScript Guide for more details.

Supported Backends

  • Default (Repl): node
  • Default (Web Demo): javascript (Browser)
  • chez
  • chez-sep
  • racket
  • refc

Development

Requirements

  • Node.js
  • Idris2
  • Python

Scripts

  • start: Start the building process
  • dev: Start the development watch mode
  • build: Build the project
  • test: Run the test cases

License

Under the BAN-ZHINESE-USING License.