{"id":20846102,"url":"https://github.com/issadarkthing/spirit","last_synced_at":"2025-05-09T02:50:26.107Z","repository":{"id":57661729,"uuid":"303544326","full_name":"issadarkthing/spirit","owner":"issadarkthing","description":"Interpreted, functional programming language with clojure syntax","archived":false,"fork":false,"pushed_at":"2024-10-23T10:57:39.000Z","size":698,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T21:34:12.486Z","etag":null,"topics":["clojure","functional-language","programming-language"],"latest_commit_sha":null,"homepage":"","language":"Go","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/issadarkthing.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-13T00:20:34.000Z","updated_at":"2024-10-23T10:57:43.000Z","dependencies_parsed_at":"2024-10-23T00:30:45.193Z","dependency_job_id":null,"html_url":"https://github.com/issadarkthing/spirit","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fspirit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fspirit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fspirit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/issadarkthing%2Fspirit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/issadarkthing","download_url":"https://codeload.github.com/issadarkthing/spirit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253181404,"owners_count":21866990,"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":["clojure","functional-language","programming-language"],"created_at":"2024-11-18T02:15:03.478Z","updated_at":"2025-05-09T02:50:26.083Z","avatar_url":"https://github.com/issadarkthing.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spirit\nSpirit is a scripting, functional language inspired by Clojure. Spirit\ndoes not target JVM machines instead it's interpreted line by line. This has\nthe advantage of fast startup and suitable for scripting environment.\n\n## Background\nThis programming language is just an experiment for me to tinker and mess around\nin building programming language. I always wanted to build my own programming language\nand implement some of the things that may have on another language to this language.\nLisp-like syntax is chosen because it is easy to parse, consistent and elegant.\nBut, as you see the syntax is not directly inherited from Lisp rather the syntax\nis much, much similar to Clojure.\n\n## Data Types\n- String\n- Number\n- List\n- Vector\n- HashMap\n- Set\n- Atom\n- Future\n\n## Differences\nThese are the differences that I deliberately made to differ from Clojure.\n\n- Function hoisting for `defn` and `defmacro`\n- Function `apply` in clojure is equivalent to `\u003c\u003e` in spirit\n- All functions that acts on Seq returns the same concrete type Seq.\n\tFor example, `map` on **`Vector`** returns **`Vector`** instead of **`List`**\n- **`Keyword`** is used instead of **`String`** as key when parsing JSON object.\n- Object Oriented system\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissadarkthing%2Fspirit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fissadarkthing%2Fspirit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissadarkthing%2Fspirit/lists"}