{"id":21020958,"url":"https://github.com/awto/fnotation","last_synced_at":"2026-03-19T18:29:00.353Z","repository":{"id":33847987,"uuid":"37551800","full_name":"awto/fnotation","owner":"awto","description":"Function notation for Prolog","archived":false,"fork":false,"pushed_at":"2020-11-06T19:35:05.000Z","size":6,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-02T00:10:39.518Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Prolog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-16T19:37:23.000Z","updated_at":"2023-08-03T01:46:44.000Z","dependencies_parsed_at":"2022-08-27T02:38:49.341Z","dependency_job_id":null,"html_url":"https://github.com/awto/fnotation","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/awto/fnotation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awto%2Ffnotation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awto%2Ffnotation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awto%2Ffnotation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awto%2Ffnotation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awto","download_url":"https://codeload.github.com/awto/fnotation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awto%2Ffnotation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30631441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-19T10:44:08.196Z","updated_at":"2026-03-17T21:05:56.279Z","avatar_url":"https://github.com/awto.png","language":"Prolog","funding_links":[],"categories":[],"sub_categories":[],"readme":"Function notation for Prolog\n=============================\n\nThis is simple term_expansion/2 based macros for functions notation.\n\nThis is a simple transform, the output is still easy to debug, \nit doesn't require special notation for function's definitions, \nany predicate may be used as a funciton already.\n\nThe simpliest usage is for predicate with the only output argument in the last \nposition. But any predicate with any position of output arguments and any number \nof them may be called as a function. In case of more than one arguments only\none can be specified by placeholder but the others may still be bound with some\nnamed variable.\n\nUse `$\u003e` and `$\u003c` operators in subterms of head or body to specify function's\nterm and its output variable placeholder respectively. If the variable\nplaceholder isn't specified the library will add another (last) argument for\nthe term and use it as an output variable.\n\ne.g.\n\n    h1(A, $\u003e h2()) :- p1(A, $\u003e p2($\u003e p3($\u003c, A))) .\n\nand\n    \n    h1(A, $\u003e h2($\u003c)) :- p1(A, $\u003e p2($\u003e p3($\u003c, A), $\u003c)) .\n\nis converted into:\n\n    h1(A,V1) :- h2(V1), p3(V0, A), p2(V0, V2), p1(A, V2) .\n\nThe operators names may be changed, for example making both of them to be `$$`:\n\n    :- fnotation_ops($$,$$) .\n    :- op(900,fx,$$) .\n\n    h1(A,R) :- p1($$ p2($$, A), R) .\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawto%2Ffnotation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawto%2Ffnotation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawto%2Ffnotation/lists"}