# PL/Scheme

> implementation of the Scheme programming language for PostgreSQL

**Wikidata**: [Q30894833](https://www.wikidata.org/wiki/Q30894833)  
**Source**: https://4ort.xyz/entity/pl-scheme

## Summary
PL/Scheme is an implementation of the Scheme programming language designed specifically for PostgreSQL, enabling procedural programming within stored procedures. It serves as a domain-specific language and plug-in, licensed under the 4-clause BSD License, and is actively maintained with documentation and source code available online.

## Key Facts
- PL/Scheme is a procedural programming language implementation of Scheme for PostgreSQL.
- It is classified as a domain-specific language, procedural programming language, and plug-in.
- The project is licensed under the 4-clause BSD License, as of September 19, 2022.
- The official website is hosted at [https://vlkan.com/plscheme/](https://vlkan.com/plscheme/), with English as the primary language.
- User documentation is available at [https://vlkan.com/plscheme/#documentation](https://vlkan.com/plscheme/#documentation).
- The source code repository is located at [https://github.com/vy/plscheme](https://github.com/vy/plscheme), with development starting on July 7, 2017.
- PL/Scheme is copyrighted and has a Wikipedia presence in Russian.
- It supports procedural programming paradigms and is used for stored procedures in PostgreSQL.

## FAQs
**What is PL/Scheme used for?**
PL/Scheme is used to write stored procedures in PostgreSQL using the Scheme programming language, allowing for procedural programming within database operations.

**Where can I find the source code for PL/Scheme?**
The source code is available on GitHub at [https://github.com/vy/plscheme](https://github.com/vy/plscheme), with development beginning on July 7, 2017.

**What license does PL/Scheme use?**
PL/Scheme is licensed under the 4-clause BSD License, as confirmed on September 19, 2022.

**Is there documentation available for PL/Scheme?**
Yes, the user manual is accessible at [https://vlkan.com/plscheme/#documentation](https://vlkan.com/plscheme/#documentation), provided in English.

## Why It Matters
PL/Scheme bridges the gap between PostgreSQL and the Scheme programming language, enabling developers to leverage Scheme's procedural capabilities directly within database stored procedures. This integration enhances PostgreSQL's extensibility, allowing for more flexible and powerful database operations. By providing a domain-specific language tailored for PostgreSQL, PL/Scheme offers a unique solution for developers seeking to combine the strengths of Scheme with relational database management.

## Notable For
- Being one of the few implementations of Scheme designed specifically for PostgreSQL.
- Offering a procedural programming paradigm within a database context.
- Maintaining an open-source model under the 4-clause BSD License.
- Providing comprehensive documentation and an active source code repository.

## Body
### Overview
PL/Scheme is a specialized implementation of the Scheme programming language tailored for PostgreSQL. It functions as a domain-specific language (DSL) and a plug-in, enabling users to write stored procedures in Scheme. This integration allows for procedural programming within PostgreSQL, combining the flexibility of Scheme with the robustness of a relational database system.

### Licensing and Legal Status
PL/Scheme is distributed under the 4-clause BSD License, a permissive open-source license that allows for both commercial and non-commercial use. The license was confirmed on September 19, 2022, ensuring that users have clear guidelines for usage and distribution. The project is copyrighted, protecting its intellectual property while still allowing for community contributions and modifications.

### Documentation and Resources
The official website for PL/Scheme is [https://vlkan.com/plscheme/](https://vlkan.com/plscheme/), which serves as the primary hub for information and updates. The user manual, available at [https://vlkan.com/plscheme/#documentation](https://vlkan.com/plscheme/#documentation), provides detailed instructions on how to use PL/Scheme within PostgreSQL. Additionally, the source code repository, hosted on GitHub at [https://github.com/vy/plscheme](https://github.com/vy/plscheme), offers access to the latest developments and contributions from the community.

### Development and Community
Development of PL/Scheme began on July 7, 2017, marking the start of its journey as an open-source project. The community around PL/Scheme is supported by its presence on GitHub, where developers can contribute to the project, report issues, and suggest improvements. The project's Wikipedia page in Russian indicates its recognition and use within the Russian-speaking developer community.

### Technical Specifications
PL/Scheme is classified as a procedural programming language, meaning it supports the writing of procedures or routines that perform specific tasks. This makes it particularly useful for creating stored procedures in PostgreSQL, which can be executed directly by the database engine. The language's procedural paradigm allows for structured and efficient database operations, enhancing the capabilities of PostgreSQL.

### Related Projects and Ecosystem
As a plug-in for PostgreSQL, PL/Scheme is part of a broader ecosystem of extensions and tools that enhance the functionality of the database system. Its integration with PostgreSQL allows developers to leverage the strengths of both systems, creating a powerful environment for database management and procedural programming. The project's open-source nature encourages collaboration and innovation within the PostgreSQL community.

## References

1. [Source](https://vlkan.com/plscheme/)