From 76822717f48acca19ea08c883e61662657bfea9a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 27 Mar 2022 22:35:55 +0200 Subject: [PATCH] add eval example --- packages/eval/README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/eval/README.md b/packages/eval/README.md index 65611d47..6119daea 100644 --- a/packages/eval/README.md +++ b/packages/eval/README.md @@ -9,6 +9,33 @@ It allows creating strudel patterns from input code that is optimized for minima npm i @strudel.cycles/eval --save ``` +## Example + +```js +import { evaluate, extend } from '@strudel.cycles/eval'; +import * as strudel from '@strudel.cycles/core'; + +extend(strudel); // add strudel to eval scope + +async function run(code) { + const { pattern } = await evaluate(code); + const events = pattern.firstCycle(); + console.log(events.map((e) => e.show()).join('\n')); +} + +run('sequence([a3, [b3, c4]])'); +``` + +yields: + +```js +(0/1 -> 1/2, 0/1 -> 1/2, a3) +(1/2 -> 3/4, 1/2 -> 3/4, b3) +(3/4 -> 1/1, 3/4 -> 1/1, c4) +``` + +[play with @strudel.cycles/eval on codesandbox](https://codesandbox.io/s/strudel-eval-example-ndz1d8?file=/src/index.js) + ## Dev Notes shift-traverser is currently monkey patched because its package.json uses estraverse@^4.2.0,