# non-strict programming language

> programming language

**Wikidata**: [Q28923018](https://www.wikidata.org/wiki/Q28923018)  
**Source**: https://4ort.xyz/entity/non-strict-programming-language

## Summary
A non-strict programming language is a type of programming language where expression evaluation is deferred until its value is actually needed. It contrasts directly with strict programming languages, which evaluate expressions immediately upon encountering them.

## Key Facts
- **Classification**: Non-strict programming language is a subclass of programming language.
- **Opposite**: It is the opposite of strict programming language.
- **Manifestation**: It manifests the concept of non-strict programming.
- **Paradigm**: It belongs to the non-strict programming paradigm.
- **Related Language Example**: Cuneiform is a related purely functional workflow programming language, founded in 2013.
- **Related Language Example**: Clean is another related programming language, founded in 1987.

## FAQs
### Q: What defines a non-strict programming language?
A: A non-strict programming language is defined by its characteristic of delaying expression evaluation until the value is required, rather than evaluating it immediately upon creation.

### Q: How does non-strict differ from strict programming languages?
A: Non-strict programming languages defer evaluation until a value is needed, while strict programming languages evaluate expressions immediately when they are created or encountered.

### Q: What is an example of a non-strict programming language?
A: Cuneiform, founded in 2013, is an example of a purely functional workflow programming language that falls under the non-strict category.

### Q: What paradigm is non-strict programming associated with?
A: Non-strict programming languages are associated with the non-strict programming paradigm.

## Why It Matters
Non-strict programming languages offer significant advantages in resource management and program behavior, particularly by enabling lazy evaluation. This allows programs to potentially skip unnecessary computations, conserve memory, and handle infinite data structures elegantly. By deferring evaluation, they can improve performance in scenarios where not all computed values are used, and provide a more natural model for certain types of computations, such as those involving streams or large datasets. The existence of languages like Clean and Cuneiform within this category demonstrates its practical application and relevance in software development paradigms.

## Notable For
- Being the direct opposite of strict programming languages in terms of evaluation strategy.
- Forming a distinct subclass within the broader category of programming languages.
- Manifesting the core concept of non-strict programming as a programming paradigm.
- Enabling the development of languages like Cuneiform and Clean, which utilize non-strict evaluation.
- Providing a foundation for computational models that benefit from deferred expression evaluation.

## Body
### Classification and Relationships
- Non-strict programming language is a **subclass** of programming language.
- It holds an **opposite_of** relationship with strict programming language.
- It is the **manifestation_of** non-strict programming.
- Its **programming_paradigm** is non-strict programming.

### Related Entities
- **Cuneiform**: A related purely functional workflow programming language. It was **incepted in 2013**.
- **Clean**: A related programming language. It was **incepted in 1987**.