# Uniot Lisp

The **UniotLisp** interpreter is a lightweight implementation of the Lisp programming language, designed for embedded systems and resource-constrained environments. This document provides an overview of its implementation, available primitives, instructions for extending functionality, and examples for developers.\
\
This guide is divided into two main parts to cater to different user needs:

1. [**Language Description**](/advanced/uniot-lisp/language-description.md)
   * Explains the UniotLisp language features, including data types, operators, conditionals, loops, macros, and more.
   * Provides examples and usage scenarios to illustrate how to effectively use the language.
   * Ideal for developers and programmers looking to write UniotLisp code.
2. [**Embedding Instructions**](/advanced/uniot-lisp/embedding-instructions.md)
   * Covers setup, initialization, extending the interpreter, managing environments, error handling, and utilizing the API.
   * Includes practical examples to demonstrate embedding techniques.
   * Perfect for developers who want to extend the functionality of the interpreter and understand the details better.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.uniot.io/advanced/uniot-lisp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
