Welcome to the EchoLisp development standards documentation. This index helps you navigate all the standards, protocols, and guidelines.
-
STANDARDS_QUICK_REFERENCE.md β START HERE
- Quick lookup for common patterns
- File naming rules
- Function naming conventions
- Code style basics
- Best for: Quick reference while coding
-
- Comprehensive development standards
- File naming conventions in detail
- Code organization patterns
- Documentation requirements
- Best practices for Scheme/Lisp
- Best for: Understanding the complete standards
-
NAMING_PROTOCOLS.md π·οΈ
- Detailed file extension specifications
- When to use each extension (.echo.scm, .echo.glisp, etc.)
- Function and variable naming patterns
- Directory structure guidelines
- Migration patterns for existing files
- Best for: Choosing the right file names and extensions
-
CODING_PATTERNS.md π‘
- Common implementation patterns
- Data structure patterns
- Functional programming patterns
- Web development patterns
- Error handling strategies
- Testing patterns
- Performance optimization
- Best for: Learning how to implement common use cases
-
MIGRATION_GUIDE.md π
- How to transition existing files
- Migration strategies
- Batch migration scripts
- Handling dependencies
- Testing after migration
- Best for: Converting existing code to new standards
-
CONTRIBUTING.md π€
- How to contribute to the repository
- Repository initialization
- Pull request guidelines
- Development workflow
- Best for: Contributing to the project
-
README.md π
- Project overview
- Getting started
- Official sources
- Quick links
- Best for: Understanding what EchoLisp is
- .editorconfig βοΈ
- Editor configuration
- Indentation settings
- File-specific formatting
- Best for: Automatic code formatting
- examples/ π»
- Working code examples
- Demonstrates standards in practice
- Four complete examples with different extensions
- Best for: Learning by example
- Read STANDARDS_QUICK_REFERENCE.md
- Choose appropriate extension from NAMING_PROTOCOLS.md
- Copy structure from examples/
- Follow patterns from CODING_PATTERNS.md
- Review MIGRATION_GUIDE.md
- Choose migration strategy
- Update file names with
.echo.prefix - Update imports and references
- Test thoroughly
- Read CONTRIBUTING.md
- Review DEVELOPMENT_STANDARDS.md
- Check examples/ for code style
- Submit pull request following guidelines
β Use .echo.scm extension, see NAMING_PROTOCOLS.md
β Use .echo.glisp extension, see examples/web-example.echo.glisp
β See CODING_PATTERNS.md
β Follow MIGRATION_GUIDE.md
β Use STANDARDS_QUICK_REFERENCE.md
Rule: All EchoLisp source files MUST use .echo. prefix
β
module.echo.scm
β
utils.echo.glisp
β
helpers.echo.lsp
β module.scm
β utils.glisp
β helpers.lsp
See: NAMING_PROTOCOLS.md
| Extension | Use Case | Example |
|---|---|---|
.echo.scm |
Standard Scheme | calculator.echo.scm |
.echo.glisp |
EchoLisp-specific | web-api.echo.glisp |
.echo.lisp |
Common Lisp style | classes.echo.lisp |
.echo.lsp |
Short utilities | utils.echo.lsp |
.echo.ls |
Minimal scripts | init.echo.ls |
.echo.s |
Core Scheme | boot.echo.s |
See: NAMING_PROTOCOLS.md
;; Predicates
empty-list?
is-valid?
;; Mutators
set-value!
update-state!
;; Converters
string->number
list->vector
;; Regular functions
calculate-sum
process-data;; ============================================
;; File: module.echo.scm
;; Purpose: Brief description
;; ============================================
;; Private helpers (prefix with % or -)
(define (%internal-helper x) ...)
;; Public API (with documentation)
;; function-name: arg1 arg2 -> result
(define (function-name arg1 arg2) ...)- Total Documentation: ~60 pages
- Code Examples: 4 working files
- Patterns Documented: 30+
- Standards Defined: Naming, coding, testing, documentation
- Extensions Covered: 6 types (.scm, .glisp, .lisp, .lsp, .ls, .s)
- DEVELOPMENT_STANDARDS.md
- CODING_PATTERNS.md (advanced sections)
- examples/web-example.echo.glisp
- MIGRATION_GUIDE.md
- CONTRIBUTING.md
- All standards documents
- Website: http://www.echolalie.org/echolisp/
- Documentation: https://www.echolalie.org/echolisp/help.html
- Rosetta Code: https://rosettacode.org/wiki/Category:EchoLisp
- Examples: examples/
- Library Files: lib/
- GitHub Actions: .github/workflows/
- File unclear or incorrect? Open an issue
- Missing information? Suggest improvements
- Found a typo? Submit a PR
- Review CODING_PATTERNS.md
- Check examples/
- Ask in discussions
- Check STANDARDS_QUICK_REFERENCE.md
- Review DEVELOPMENT_STANDARDS.md
- Consult NAMING_PROTOCOLS.md
Use this checklist for new files:
- File name uses
.echo.prefix - Appropriate extension chosen
- File header with documentation
- Functions documented with examples
- Code follows style guidelines
- Tests created (if applicable)
- Imports use correct file names
- No hardcoded secrets or sensitive data
- Start Coding: Use the standards to create new files
- Migrate Files: Follow the migration guide for existing code
- Contribute: Submit improvements to the standards
- Spread the Word: Share these standards with other developers
- v1.0.0 (2026-01-02) - Initial release
- Complete standards documentation
- Working examples
- Migration guide
- Quick reference
This index is maintained as part of the EchoLisp repository For questions or suggestions, open an issue on GitHub