{"id":14128655,"url":"https://github.com/surrsurus/gazelle","last_synced_at":"2025-08-15T00:42:01.443Z","repository":{"id":70066006,"uuid":"50530419","full_name":"surrsurus/gazelle","owner":"surrsurus","description":"Scripting language inspired by LISP and Scheme","archived":false,"fork":false,"pushed_at":"2018-11-20T15:55:52.000Z","size":99,"stargazers_count":10,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T17:50:28.812Z","etag":null,"topics":["deer","experiment","functional","functional-programming","haskell","interpreter","lambda-calculus","lisp","lisp-interpreter","python","repl","scheme","scheme-interpreter","scripting-language"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surrsurus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-01-27T19:00:47.000Z","updated_at":"2024-05-18T08:24:09.000Z","dependencies_parsed_at":"2023-02-21T10:45:55.690Z","dependency_job_id":null,"html_url":"https://github.com/surrsurus/gazelle","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surrsurus%2Fgazelle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surrsurus%2Fgazelle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surrsurus%2Fgazelle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surrsurus%2Fgazelle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surrsurus","download_url":"https://codeload.github.com/surrsurus/gazelle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254131914,"owners_count":22020042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deer","experiment","functional","functional-programming","haskell","interpreter","lambda-calculus","lisp","lisp-interpreter","python","repl","scheme","scheme-interpreter","scripting-language"],"created_at":"2024-08-15T16:02:00.428Z","updated_at":"2025-05-14T11:33:49.703Z","avatar_url":"https://github.com/surrsurus.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# gazelle [![Build Status](https://travis-ci.org/surrsurus/gazelle.svg?branch=master)](https://travis-ci.org/surrsurus/gazelle) ![Python Version](https://img.shields.io/badge/python-3.6-green.svg)  [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) \n\nGazelle is a tiny lisp-like scripting language built with Python.  \n\nGazelle is:\n- **Easy to setup** \n  - Have Python? You can run Gazelle. Gazelle requires no external dependencies (that shouldn't be already downloaded)\n- **Inspired by LISP and Scheme**\n  - Gazelle code is written entirely with prefix notation in the form `(procedure expression)`\n  - Gazelle has no true AST, instead the programmer ends up directly coding the AST for Gazelle to interpret\n  - Only 3 fundamental types: Atoms, Lists, and Procedures\n- **Extendable**\n  - Adding features to Gazelle is simple and easy through editing the python source or via directly programming in Gazelle itself\n\nNot convinced? Gazelle can be used to write answers to Project Euler questions. Here's problem 1:\n\n```scheme\n(return (sum (filter (\\ (n) (or (= (% n 5) 0) (= (% n 3) 0))) (range 1000))))\n```\n\n## Getting Started\n\nHere's how you can get started programming in Gazelle.\n\n### Prerequisites\n\nBefore you can run Gazelle, you'll need to have [Python 3.6](https://www.python.org/downloads/) installed for your respective OS. Then, make sure to download either the [latest release](https://github.com/surrsurus/gazelle/releases) of Gazelle or the latest master.\n\n### Running Gazelle\n\nFor more detail, check out the [getting started guide](https://github.com/surrsurus/gazelle/wiki/Getting-Started)\n\n#### Windows\n\nTo run the repl, run `python gazelle.py` in the root directory from the commandline.\n\n#### Linux/OSX\n\nTo run the repl on linux/OSX, you can run `python3 gazelle.py` in the root directory of Gazelle.\n\n### Basic Usage\n\nThe Gazelle REPL provides all the basic utility you need to begin toying with it.\n\nIn addition, files can be ran by using a file path as your argument such as `python gazelle.py ./example/euler/one.gel` and files can be run in succession such as `python gazelle.py ./example/euler/one.gel ./example/euler/two.gel`\n\n### Running the Tests\n\nFirst, install the testing requirements.\n\n```\n$ pip install -r requirements.txt\n```\n\nTo run the tests, run `pytest tests/testsuite.py` from the root directory. This will start the tests and get benchmarking data.\n\n### Code Examples\n\nTake a look at the [getting started guide](https://github.com/surrsurus/gazelle/wiki/Getting-Started) and our [documentation](https://github.com/surrsurus/gazelle/wiki/Documentation) to learn how to code with Gazelle. You can view example programs in the [examples folder](https://github.com/surrsurus/gazelle/tree/master/example) packaged with Gazelle.\n\n## Contributing\n\nTake a look at [this page](https://github.com/surrsurus/gazelle/blob/master/CONTRIBUTING.md) you can contribute to Gazelle.\n\n## License\n\n\u003cimg align=\"center\" src=\"https://licensebuttons.net/l/GPL/2.0/88x62.png\" alt=\"GPL\" width=100\u003e\n\nThis code is released under the GNU GENERAL PUBLIC LICENSE. All works in this repository are meant to be utilized under this license. You are entitled to remix, remodify, and redistribute this program as you see fit, under the condition that all derivative works must use the GPL Version 3.\n\n## Acknowledgements\n\n  - Inspiration from [here](http://norvig.com/lispy2.html)\n  - The original [LISP paper by McCarthy](http://www-formal.stanford.edu/jmc/recursive.html)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurrsurus%2Fgazelle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurrsurus%2Fgazelle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurrsurus%2Fgazelle/lists"}