{"id":16032699,"url":"https://github.com/threez/rlisp","last_synced_at":"2025-04-01T13:16:24.285Z","repository":{"id":837162,"uuid":"558418","full_name":"threez/rlisp","owner":"threez","description":"Ruby implementation of a lisp","archived":false,"fork":false,"pushed_at":"2010-04-29T21:56:38.000Z","size":98,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T08:12:40.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":"Deprecated","scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/threez.png","metadata":{"files":{"readme":"README","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":"2010-03-11T23:13:26.000Z","updated_at":"2012-12-14T02:16:18.000Z","dependencies_parsed_at":"2022-07-15T20:30:32.088Z","dependency_job_id":null,"html_url":"https://github.com/threez/rlisp","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/threez%2Frlisp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threez%2Frlisp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threez%2Frlisp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threez%2Frlisp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/threez","download_url":"https://codeload.github.com/threez/rlisp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246644097,"owners_count":20810687,"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-08T21:40:20.935Z","updated_at":"2025-04-01T13:16:24.259Z","avatar_url":"https://github.com/threez.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is an simple LISP-interpreter witten in ruby. \nGiven a Lisp Expression like this:\n\n  (+ (* 3 4) 2)\n\nThe Lexer will produce:\n\n  [:+ [:* 3 4] 2]\n\nRuby symbols are LISP atoms and arrays are lists.\n\nThe interpreter evals the whole list and executes the apply method\non the functions.\n\nThe build-in functions are the functions that are attached to the interpreter\nclass. To bootstrap the interpreter the Core and Math modules (of helper.rb)\nare included in the interpreter class. This makes Ruby integration rather\nsimple. Just include your ruby modules in the interpreter.\n\nUsing the interpreter by using the classes:\n\n\tl = Lisp::Lexer.new\n\tp = Lisp::Parser.new\n\tl.tokenize(\"test.lisp\", p)\n\ti = Lisp::Interpreter.new\n\ti.start p.node\n\t\nEvaluate a file:\n\n\ti = Lisp::Interpreter.new\n\ti.import(\"my_lisp_file.lisp\")\n\t\nOr just start the command line interface with REPL (read eval print loop):\n\n  ./bin/rlisp","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreez%2Frlisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreez%2Frlisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreez%2Frlisp/lists"}