{"id":23631009,"url":"https://github.com/donomii/throff-combined","last_synced_at":"2026-04-29T09:32:37.741Z","repository":{"id":95813190,"uuid":"440300107","full_name":"donomii/throff-combined","owner":"donomii","description":"The THROFF programming languge","archived":false,"fork":false,"pushed_at":"2022-02-05T01:16:14.000Z","size":17057,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-06T21:41:48.853Z","etag":null,"topics":["esolang","esoteric-language","esoteric-programming-language","forth","forth-like","go","golang","homoiconic","interpreter"],"latest_commit_sha":null,"homepage":"http://www.praeceptamachinae.com/projects/throff","language":"Jupyter Notebook","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/donomii.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,"zenodo":null}},"created_at":"2021-12-20T20:36:37.000Z","updated_at":"2021-12-20T23:28:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0f48ea1-e0c5-456a-99d6-d46955ad9317","html_url":"https://github.com/donomii/throff-combined","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/donomii/throff-combined","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donomii%2Fthroff-combined","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donomii%2Fthroff-combined/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donomii%2Fthroff-combined/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donomii%2Fthroff-combined/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/donomii","download_url":"https://codeload.github.com/donomii/throff-combined/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/donomii%2Fthroff-combined/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32419954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["esolang","esoteric-language","esoteric-programming-language","forth","forth-like","go","golang","homoiconic","interpreter"],"created_at":"2024-12-28T02:48:15.580Z","updated_at":"2026-04-29T09:32:37.736Z","avatar_url":"https://github.com/donomii.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GoDoc](https://godoc.org/github.com/donomii/throff?status.svg)](https://godoc.org/github.com/donomii/throff)\n\n# throff\n\nA programming language that started as an improved Forth, and got out of control.  Has lexical scoping, continuations, effective tail calls and macros.  throff runs on a custom 3-stack engine. \n\nthroff was an experiment in creating a small core and building the language up to a fully featured programming language.  This was successful, but there are already many fully featured programming languages and this one doesn't add anything particularily new.\n\nView the [manual](throffmain/README.md).\n\n## Get it\n\nthe Throff programming language\n\n    go get -v github.com/donomii/throff\n    go build github.com/donomii/throff\n\n Or download a [precompiled binary](https://github.com/donomii/throff/releases)\n\n## Use it\n\n### Run from Command Line\n\n\t\u003e throff ADD 1 1\n\t2\n\n### Interactive shell\n\n\t\u003e throff\n\tWelcome to the THROFF command shell v0.1. Type HELP for help.\n\tThroff »ADD 1 1\n\t2\n\n### Run a program from a file\n\n\tthroff -f sierpinski.thr\n\n### Scripting interface for golang\n\n``` golang\n\tresult, _ := t.CallArgs1(\"ADD\", 4, \"5\")\n\tfmt.Println(\"Calculation result: \", result)\n```\n\n## Throff is\n\nThroff is a dynamically typed, late binding, homoiconic, concatenative programming language, taking inspiration from Forth, Joy and Scheme.  It has all the features of a modern language - [closures, lexical scopes](http://praeceptamachinae.com/post/throff_variables.html), [tail call optimisations](http://praeceptamachinae.com/post/throff_tail_call_optimisation.html), currying, and continuations.\n\nEverything is a function, even language constructs like IF and FOR, which can be replaced and extended with your own versions.  It uses immutable semantics wherever possible to provide safe threading and continuations.  There is almost no lexer/tokeniser, and no parser in the traditional sense.  Commands are fed directly into the engine to be executed.  The programs are written _backwards_. \n\nThere are many examples in the [examples](throffmain/examples/) and [rosetta](throffmain/rosetta/) directories.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonomii%2Fthroff-combined","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdonomii%2Fthroff-combined","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdonomii%2Fthroff-combined/lists"}