{"id":17087614,"url":"https://github.com/tiancaiamao/cora","last_synced_at":"2025-04-07T17:08:29.247Z","repository":{"id":7966607,"uuid":"41751298","full_name":"tiancaiamao/cora","owner":"tiancaiamao","description":"Genius programmer should write his own lisp!","archived":false,"fork":false,"pushed_at":"2025-03-31T00:48:51.000Z","size":2816,"stargazers_count":56,"open_issues_count":8,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T01:27:47.700Z","etag":null,"topics":["cora","lambda","lisp","programming-language"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiancaiamao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2015-09-01T16:50:29.000Z","updated_at":"2025-03-24T13:34:24.000Z","dependencies_parsed_at":"2024-04-22T12:31:45.016Z","dependency_job_id":"9ef0c896-634b-4f02-a288-4f8965200bf1","html_url":"https://github.com/tiancaiamao/cora","commit_stats":{"total_commits":292,"total_committers":2,"mean_commits":146.0,"dds":"0.017123287671232834","last_synced_commit":"534a64012d5a0b14d86adc0fb24208b6dbff1e95"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiancaiamao%2Fcora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiancaiamao%2Fcora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiancaiamao%2Fcora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiancaiamao%2Fcora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiancaiamao","download_url":"https://codeload.github.com/tiancaiamao/cora/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247694876,"owners_count":20980733,"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":["cora","lambda","lisp","programming-language"],"created_at":"2024-10-14T13:34:15.373Z","updated_at":"2025-04-07T17:08:29.219Z","avatar_url":"https://github.com/tiancaiamao.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The cora programming language\n\nInspired by scheme, shen, femtolisp and many more...\n\n\u003c!-- ## closure can be printed readably --\u003e\n\n\u003c!-- `(lambda (a) 3 (b . 5) (c . 7))` as femtolisp --\u003e\n\n## kernel lambda\n\nMinimal special forms:\n\n- quote\n- lambda\n- if\n- do\n\n`set` can be a function rather than special form.\n\n`let` is a macro.\n\n(let a 3 b 5 ...)\n\n## proper tail call\n\nproper tail call, as scheme does.\n\n## partial apply\n\n```lisp\n((+ 3) 4)\n```\n\n## pattern match\n\n```lisp\n(match (cons 1 2)\n    (cons a b) a)\n```\n\n## The `func` macro\n\n```lisp\n(func map\n  f [] =\u003e []\n  f [x . y] =\u003e [(f x) . (map f y)])\n```\n\nNowadays any cats and dogs write their own programming languages, mostly sucks. Many of them are too small to be even a **finished** toy, many lack features, worsely, many choose the wrong features.\n\nHowever, it's still an important practice for a true lisp hacker to keep inventing his own one, adapting the language to his own taste.\n\nAmong the most important features, lisp1, of course. Then comes proper tail call and partial apply, for functional programming goodness. Keep the kernel language miminal is also important, I think.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiancaiamao%2Fcora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiancaiamao%2Fcora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiancaiamao%2Fcora/lists"}