diff options
Diffstat (limited to 'js/scripting-lang/docs/baba-yaga/0.0.1/tutorial-11_Standard_Library.html')
-rw-r--r-- | js/scripting-lang/docs/baba-yaga/0.0.1/tutorial-11_Standard_Library.html | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/js/scripting-lang/docs/baba-yaga/0.0.1/tutorial-11_Standard_Library.html b/js/scripting-lang/docs/baba-yaga/0.0.1/tutorial-11_Standard_Library.html deleted file mode 100644 index e56d300..0000000 --- a/js/scripting-lang/docs/baba-yaga/0.0.1/tutorial-11_Standard_Library.html +++ /dev/null @@ -1,164 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width,initial-scale=1"> - <title>11_Standard_Library - Documentation</title> - - <script src="scripts/prettify/prettify.js"></script> - <script src="scripts/prettify/lang-css.js"></script> - <!--[if lt IE 9]> - <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> - <![endif]--> - <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"> - <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> - <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> -</head> -<body> - -<input type="checkbox" id="nav-trigger" class="nav-trigger" /> -<label for="nav-trigger" class="navicon-button x"> - <div class="navicon"></div> -</label> - -<label for="nav-trigger" class="overlay"></label> - -<nav> - <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Tutorials</li><li class="nav-item"><a href="tutorial-00_Introduction.html">00_Introduction</a></li><li class="nav-item"><a href="tutorial-01_Function_Calls.html">01_Function_Calls</a></li><li class="nav-item"><a href="tutorial-02_Function_Composition.html">02_Function_Composition</a></li><li class="nav-item"><a href="tutorial-03_Table_Operations.html">03_Table_Operations</a></li><li class="nav-item"><a href="tutorial-04_Currying.html">04_Currying</a></li><li class="nav-item"><a href="tutorial-05_Pattern_Matching.html">05_Pattern_Matching</a></li><li class="nav-item"><a href="tutorial-06_Immutable_Tables.html">06_Immutable_Tables</a></li><li class="nav-item"><a href="tutorial-07_Function_References.html">07_Function_References</a></li><li class="nav-item"><a href="tutorial-08_Combinators.html">08_Combinators</a></li><li class="nav-item"><a href="tutorial-09_Expression_Based.html">09_Expression_Based</a></li><li class="nav-item"><a href="tutorial-10_Tables_Deep_Dive.html">10_Tables_Deep_Dive</a></li><li class="nav-item"><a href="tutorial-11_Standard_Library.html">11_Standard_Library</a></li><li class="nav-item"><a href="tutorial-12_IO_Operations.html">12_IO_Operations</a></li><li class="nav-item"><a href="tutorial-13_Error_Handling.html">13_Error_Handling</a></li><li class="nav-item"><a href="tutorial-14_Advanced_Combinators.html">14_Advanced_Combinators</a></li><li class="nav-item"><a href="tutorial-15_Integration_Patterns.html">15_Integration_Patterns</a></li><li class="nav-item"><a href="tutorial-16_Best_Practices.html">16_Best_Practices</a></li><li class="nav-item"><a href="tutorial-README.html">README</a></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#callStackTracker">callStackTracker</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#debugError">debugError</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#debugLog">debugLog</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#executeFile">executeFile</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#initializeStandardLibrary">initializeStandardLibrary</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#interpreter">interpreter</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#lexer">lexer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#main">main</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#parser">parser</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#readFile">readFile</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#run">run</a></span></li> -</nav> - -<div id="main"> - - <h1 class="page-title">11_Standard_Library</h1> - - - <section> - -<header> - -</header> - -<article> - <h1>Standard Library Overview</h1> -<h2>What is the Standard Library?</h2> -<p>The Baba Yaga standard library provides a comprehensive set of functions for common operations. Everything is a function - even operators like <code>+</code> and <code>*</code> are just functions under the hood.</p> -<h2>Core Categories</h2> -<h3>Arithmetic Functions</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Basic arithmetic */ -add 5 3; /* 8 */ -subtract 10 4; /* 6 */ -multiply 6 7; /* 42 */ -divide 20 5; /* 4 */ -modulo 17 5; /* 2 */ -power 2 8; /* 256 */ -negate 42; /* -42 */ -</code></pre> -<h3>Comparison Functions</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Comparisons return booleans */ -equals 5 5; /* true */ -notEquals 3 7; /* true */ -lessThan 3 7; /* true */ -greaterThan 10 5; /* true */ -lessEqual 5 5; /* true */ -greaterEqual 8 3; /* true */ -</code></pre> -<h3>Logical Functions</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Logical operations */ -logicalAnd true false; /* false */ -logicalOr true false; /* true */ -logicalXor true true; /* false */ -logicalNot true; /* false */ -</code></pre> -<h3>Higher-Order Functions</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Function manipulation */ -compose @double @increment 5; /* 12 */ -pipe @increment @double 5; /* 12 */ -apply @add 3 4; /* 7 */ -curry @add 3; /* function that adds 3 */ -</code></pre> -<h3>Collection Functions</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Working with collections */ -map @double {1, 2, 3}; /* {2, 4, 6} */ -filter @is_even {1, 2, 3, 4}; /* {2, 4} */ -reduce @add 0 {1, 2, 3}; /* 6 */ -each @add {1, 2} {10, 20}; /* {11, 22} */ -</code></pre> -<h3>Enhanced Combinators</h3> -<pre class="prettyprint source lang-plaintext"><code>/* Utility functions */ -identity 42; /* 42 */ -constant 5 10; /* 5 */ -flip @subtract 5 10; /* 5 (10 - 5) */ -on @length @add "hello" "world"; /* 10 */ -both @is_even @is_positive 6; /* true */ -either @is_even @is_negative 6; /* true */ -</code></pre> -<h2>Table Operations (<code>t.</code> namespace)</h2> -<p>All table operations are immutable and return new tables:</p> -<pre class="prettyprint source lang-plaintext"><code>/* Table-specific operations */ -data : {a: 1, b: 2, c: 3}; -doubled : t.map @double data; /* {a: 2, b: 4, c: 6} */ -filtered : t.filter @is_even data; /* {b: 2} */ -updated : t.set data "d" 4; /* {a: 1, b: 2, c: 3, d: 4} */ -removed : t.delete data "b"; /* {a: 1, c: 3} */ -merged : t.merge data {d: 4, e: 5}; /* {a: 1, b: 2, c: 3, d: 4, e: 5} */ -value : t.get data "a"; /* 1 */ -has_key : t.has data "b"; /* true */ -count : t.length data; /* 3 */ -</code></pre> -<h2>When to Use Which Function</h2> -<ul> -<li><strong>Use <code>map</code></strong> for transforming every element in a collection</li> -<li><strong>Use <code>filter</code></strong> for selecting elements that match a condition</li> -<li><strong>Use <code>reduce</code></strong> for combining all elements into a single value</li> -<li><strong>Use <code>each</code></strong> for element-wise operations across multiple collections</li> -<li><strong>Use <code>t.map</code>/<code>t.filter</code></strong> when you want to emphasize table operations</li> -<li><strong>Use <code>compose</code></strong> for mathematical-style function composition (right-to-left)</li> -<li><strong>Use <code>pipe</code></strong> for pipeline-style composition (left-to-right)</li> -</ul> -<h2>Common Patterns</h2> -<pre class="prettyprint source lang-plaintext"><code>/* Data processing pipeline */ -data : {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; -is_even : x -> x % 2 = 0; -double : x -> x * 2; -sum : x -> reduce @add 0 x; - -/* Process: filter evens, double them, sum the result */ -result : sum map @double filter @is_even data; -/* Result: 60 */ - -/* Table transformation */ -users : { - alice: {name: "Alice", age: 25}, - bob: {name: "Bob", age: 30} -}; -get_age : x -> x.age; -is_adult : x -> x >= 18; -format_age : x -> x + " years old"; - -/* Get formatted ages of adult users */ -adult_ages : map @format_age filter @is_adult map @get_age users; -/* Result: {alice: "25 years old", bob: "30 years old"} */ -</code></pre> -<h2>Next Steps</h2> -<p>Now that you understand the standard library, explore:</p> -<ul> -<li><a href="14_Advanced_Combinators.md">Advanced Combinators</a> for complex patterns</li> -<li><a href="12_IO_Operations.md">IO Operations</a> for input/output</li> -<li><a href="13_Error_Handling.md">Error Handling</a> for robust programs</li> -</ul> -</article> - -</section> - -</div> - -<br class="clear"> - -<footer> - Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.4</a> on Tue Jul 29 2025 23:15:00 GMT-0400 (Eastern Daylight Time) using the Minami theme. -</footer> - -<script>prettyPrint();</script> -<script src="scripts/linenumber.js"></script> -</body> -</html> \ No newline at end of file |