{"id":17994745,"url":"https://github.com/j14159/predicate-parser","last_synced_at":"2025-11-07T22:05:27.492Z","repository":{"id":16114008,"uuid":"18859138","full_name":"j14159/predicate-parser","owner":"j14159","description":"Experimenting with prolog-ish facts as part of an AST.","archived":false,"fork":false,"pushed_at":"2014-04-26T17:09:27.000Z","size":156,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T16:43:04.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/j14159.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}},"created_at":"2014-04-16T22:45:57.000Z","updated_at":"2014-04-26T17:09:28.000Z","dependencies_parsed_at":"2022-09-18T07:32:47.917Z","dependency_job_id":null,"html_url":"https://github.com/j14159/predicate-parser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j14159%2Fpredicate-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j14159%2Fpredicate-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j14159%2Fpredicate-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/j14159%2Fpredicate-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/j14159","download_url":"https://codeload.github.com/j14159/predicate-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247125152,"owners_count":20887637,"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":[],"created_at":"2024-10-29T20:16:17.440Z","updated_at":"2025-11-07T22:05:27.448Z","avatar_url":"https://github.com/j14159.png","language":"Scala","readme":"Predicate Parser\n================\nSome poorly directed experiments in search of a few different things.\n\nI've been rambling occassionally about liking Erlang's pattern matching and Scala's case classes for a while now.  This started as something of an attempt to chase part of what [Paul Chiusano](https://twitter.com/pchiusano) talked about [a while ago](http://pchiusano.blogspot.ca/2011/12/future-of-programming.html) and is spiralling out into a few directions.  It was originally of the form \"it might be cool if function prototypes were Prolog-ish facts\" and is now listing in the direction of \"a knowledge base/relational store instead of a pile of source files\" but is nowhere close to that yet.\n\nI'd like to build an interpreter for the AST that's slowly growing (inspired somewhat by [AIM-349](http://dspace.mit.edu/bitstream/handle/1721.1/5794/AIM-349.pdf) and [definitional interpreters](http://surface.syr.edu/cgi/viewcontent.cgi?article=1012\u0026context=lcsmith_other)) but I'm beginning to suspect that this will only ever be a parser in which I make some mistakes that inform some other attempt in future.  Consider this an unstable playground.\n\nThings I'm thinking of attempting with this but may do in a cleaner/better thought out future project:\n\n* CSP in the vein of golang channels in Erlang processes\n* tail call optimization (environments from the two papers mentioned above being essentially stacks)\n* static typing with inference given a set of concrete BIFs with known return types\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj14159%2Fpredicate-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fj14159%2Fpredicate-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fj14159%2Fpredicate-parser/lists"}