<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.memcp.org/index.php?action=history&amp;feed=atom&amp;title=SCM_Builtins</id>
	<title>SCM Builtins - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.memcp.org/index.php?action=history&amp;feed=atom&amp;title=SCM_Builtins"/>
	<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=SCM_Builtins&amp;action=history"/>
	<updated>2026-04-24T16:52:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=220&amp;oldid=prev</id>
		<title>Aiagent at 16:27, 25 August 2025</title>
		<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=220&amp;oldid=prev"/>
		<updated>2025-08-25T16:27:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:27, 25 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= SCM Builtins =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= SCM Builtins =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The &#039;&#039;&#039;SCM Builtins&#039;&#039;&#039; module provides the core foundational functions for the SCM (Scheme) programming language implementation. These built-in functions handle essential operations including:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Language constructs&#039;&#039;&#039;: Control flow (if, and, or), variable management (define, set), and code evaluation (eval, quote)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Function operations&#039;&#039;&#039;: Lambda creation, function application, and error handling (try, error)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Data manipulation&#039;&#039;&#039;: Type conversion (string, symbol), list operations, and pattern matching&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Development tools&#039;&#039;&#039;: Code optimization, timing measurements, and debugging support&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;Execution control&#039;&#039;&#039;: Parallel processing, variable scoping, and source code annotation&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This module forms the foundation upon which all other SCM functionality is built, providing the essential primitives needed for Scheme programming.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;← Back to [[Full SCM API documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== quote ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== quote ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key memcp_wiki-mediawiki-:diff::1.12:old-219:rev-220 --&gt;
&lt;/table&gt;</summary>
		<author><name>Aiagent</name></author>
	</entry>
	<entry>
		<id>https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=219&amp;oldid=prev</id>
		<title>Aiagent at 16:24, 25 August 2025</title>
		<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=219&amp;oldid=prev"/>
		<updated>2025-08-25T16:24:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.memcp.org/index.php?title=SCM_Builtins&amp;amp;diff=219&amp;amp;oldid=218&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Aiagent</name></author>
	</entry>
	<entry>
		<id>https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=218&amp;oldid=prev</id>
		<title>Aiagent at 16:21, 25 August 2025</title>
		<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=218&amp;oldid=prev"/>
		<updated>2025-08-25T16:21:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.memcp.org/index.php?title=SCM_Builtins&amp;amp;diff=218&amp;amp;oldid=217&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Aiagent</name></author>
	</entry>
	<entry>
		<id>https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=217&amp;oldid=prev</id>
		<title>Aiagent: Created page with &quot;# SCM Builtins  ## quote  returns a symbol or list without evaluating it  **Allowed number of parameters:** 1–1  ### Parameters  - **symbol** (`symbol`): symbol to quote  ### Returns  `symbol`  ## eval  executes the given scheme program in the current environment  **Allowed number of parameters:** 1–1  ### Parameters  - **code** (`list`): list with head and optional parameters  ### Returns  `any`  ## size  compute the memory size of a value  **Allowed number of param...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=SCM_Builtins&amp;diff=217&amp;oldid=prev"/>
		<updated>2025-08-25T16:16:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;# SCM Builtins  ## quote  returns a symbol or list without evaluating it  **Allowed number of parameters:** 1–1  ### Parameters  - **symbol** (`symbol`): symbol to quote  ### Returns  `symbol`  ## eval  executes the given scheme program in the current environment  **Allowed number of parameters:** 1–1  ### Parameters  - **code** (`list`): list with head and optional parameters  ### Returns  `any`  ## size  compute the memory size of a value  **Allowed number of param...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# SCM Builtins&lt;br /&gt;
&lt;br /&gt;
## quote&lt;br /&gt;
&lt;br /&gt;
returns a symbol or list without evaluating it&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **symbol** (`symbol`): symbol to quote&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`symbol`&lt;br /&gt;
&lt;br /&gt;
## eval&lt;br /&gt;
&lt;br /&gt;
executes the given scheme program in the current environment&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **code** (`list`): list with head and optional parameters&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## size&lt;br /&gt;
&lt;br /&gt;
compute the memory size of a value&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`any`): value to examine&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`int`&lt;br /&gt;
&lt;br /&gt;
## optimize&lt;br /&gt;
&lt;br /&gt;
optimize the given scheme program&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **code** (`list`): list with head and optional parameters&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## time&lt;br /&gt;
&lt;br /&gt;
measures the time it takes to compute the first argument&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **code** (`any`): code to execute&lt;br /&gt;
- **label** (`string`): label to print in the log or trace&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## if&lt;br /&gt;
&lt;br /&gt;
checks a condition and then conditionally evaluates code branches; there might be multiple condition+true-branch clauses&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **condition...** (`bool`): condition to evaluate&lt;br /&gt;
- **true-branch...** (`returntype`): code to evaluate if condition is true&lt;br /&gt;
- **false-branch** (`returntype`): code to evaluate if condition is false&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`returntype`&lt;br /&gt;
&lt;br /&gt;
## and&lt;br /&gt;
&lt;br /&gt;
returns true if all conditions evaluate to true&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **condition** (`bool`): condition to evaluate&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`bool`&lt;br /&gt;
&lt;br /&gt;
## or&lt;br /&gt;
&lt;br /&gt;
returns true if at least one condition evaluates to true&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **condition** (`any`): condition to evaluate&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`bool`&lt;br /&gt;
&lt;br /&gt;
## coalesce&lt;br /&gt;
&lt;br /&gt;
returns the first value that has a non-zero value&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`returntype`): value to examine&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`returntype`&lt;br /&gt;
&lt;br /&gt;
## coalesceNil&lt;br /&gt;
&lt;br /&gt;
returns the first value that has a non-nil value&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`returntype`): value to examine&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`returntype`&lt;br /&gt;
&lt;br /&gt;
## define&lt;br /&gt;
&lt;br /&gt;
defines or sets a variable in the current environment&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **variable** (`symbol`): variable to set&lt;br /&gt;
- **value** (`returntype`): value to set the variable to&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`bool`&lt;br /&gt;
&lt;br /&gt;
## set&lt;br /&gt;
&lt;br /&gt;
defines or sets a variable in the current environment&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **variable** (`symbol`): variable to set&lt;br /&gt;
- **value** (`returntype`): value to set the variable to&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`bool`&lt;br /&gt;
&lt;br /&gt;
## error&lt;br /&gt;
&lt;br /&gt;
halts the whole execution thread and throws an error message&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value...** (`any`): value or message to throw&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`string`&lt;br /&gt;
&lt;br /&gt;
## try&lt;br /&gt;
&lt;br /&gt;
tries to execute a function and returns its result. In case of a failure, the error is fed to the second function and its result value will be used&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **func** (`func`): function with no parameters that will be called&lt;br /&gt;
- **errorhandler** (`func`): function that takes the error as parameter&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## apply&lt;br /&gt;
&lt;br /&gt;
runs the function with its arguments&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **function** (`func`): function to execute&lt;br /&gt;
- **arguments** (`list`): list of arguments to apply&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## apply_assoc&lt;br /&gt;
&lt;br /&gt;
runs the function with its arguments but arguments is a assoc list&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **function** (`func`): function to execute (must be a lambda)&lt;br /&gt;
- **arguments** (`list`): assoc list of arguments to apply&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`symbol`&lt;br /&gt;
&lt;br /&gt;
## symbol&lt;br /&gt;
&lt;br /&gt;
returns a symbol built from that string&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`string`): string value that will be converted into a symbol&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`symbol`&lt;br /&gt;
&lt;br /&gt;
## list&lt;br /&gt;
&lt;br /&gt;
returns a list containing the parameters as alements&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 0–10000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value...** (`any`): value for the list&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`list`&lt;br /&gt;
&lt;br /&gt;
## string&lt;br /&gt;
&lt;br /&gt;
converts the given value into string&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`any`): any value&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`string`&lt;br /&gt;
&lt;br /&gt;
## match&lt;br /&gt;
&lt;br /&gt;
takes a value evaluates the branch that first matches the given pattern&lt;br /&gt;
Patterns can be any of:&lt;br /&gt;
 - symbol matches any value and stores is into a variable&lt;br /&gt;
 - &amp;quot;string&amp;quot; (matches only this string)&lt;br /&gt;
 - number (matches only this value)&lt;br /&gt;
 - (symbol &amp;quot;something&amp;quot;) will only match the symbol &amp;#039;something&amp;#039;&lt;br /&gt;
 - &amp;#039;(subpattern subpattern...) matches a list with exactly these subpatterns&lt;br /&gt;
 - (concat str1 str2 str3) will decompose a string into one of the following patterns: &amp;quot;prefix&amp;quot; variable, variable &amp;quot;postfix&amp;quot;, variable &amp;quot;infix&amp;quot; variable&lt;br /&gt;
 - (cons a b) will reverse the cons function, so it will match the head of the list with a and the rest with b&lt;br /&gt;
 - (regex &amp;quot;pattern&amp;quot; text var1 var2...) will match the given regex pattern, store the whole string into text and all capture groups into var1, var2...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 3–10000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **value** (`any`): value to evaluate&lt;br /&gt;
- **pattern...** (`any`): pattern&lt;br /&gt;
- **result...** (`returntype`): result value when the pattern matches; this code can use the variables matched in the pattern&lt;br /&gt;
- **default** (`any`): (optional) value that is returned when no pattern matches&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## lambda&lt;br /&gt;
&lt;br /&gt;
returns a function (func) constructed from the given code&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 2–3&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **parameters** (`symbol|list|nil`): if you provide a parameter list, you will have named parameters. If you provide a single symbol, the list of parameters will be provided in that symbol&lt;br /&gt;
- **code** (`any`): value that is evaluated when the lambda is called. code can use the parameters provided in the declaration as well es the scope above&lt;br /&gt;
- **numvars** (`number`): number of unnamed variables that can be accessed via (var 0) (var 1) etc.&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`func`&lt;br /&gt;
&lt;br /&gt;
## begin&lt;br /&gt;
&lt;br /&gt;
creates a own variable scope, evaluates all sub expressions and returns the result of the last one&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 0–10000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **expression...** (`any`): expressions to evaluate&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## parallel&lt;br /&gt;
&lt;br /&gt;
executes all parameters in parallel and returns nil if they are finished&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–10000&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **expression...** (`any`): expressions to evaluate in parallel&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## source&lt;br /&gt;
&lt;br /&gt;
annotates the node with filename and line information for better backtraces&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 4–4&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **filename** (`string`): Filename of the code&lt;br /&gt;
- **line** (`number`): Line of the code&lt;br /&gt;
- **column** (`number`): Column of the code&lt;br /&gt;
- **code** (`returntype`): code&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`returntype`&lt;br /&gt;
&lt;br /&gt;
## scheme&lt;br /&gt;
&lt;br /&gt;
parses a scheme expression into a list&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–2&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **code** (`string`): Scheme code&lt;br /&gt;
- **filename** (`string`): optional filename&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`any`&lt;br /&gt;
&lt;br /&gt;
## serialize&lt;br /&gt;
&lt;br /&gt;
serializes a piece of code into a (hopefully) reparsable string; you shall be able to send that code over network and reparse with (scheme)&lt;br /&gt;
&lt;br /&gt;
**Allowed number of parameters:** 1–1&lt;br /&gt;
&lt;br /&gt;
### Parameters&lt;br /&gt;
&lt;br /&gt;
- **code** (`list`): Scheme code&lt;br /&gt;
&lt;br /&gt;
### Returns&lt;br /&gt;
&lt;br /&gt;
`string`&lt;/div&gt;</summary>
		<author><name>Aiagent</name></author>
	</entry>
</feed>