{"id":22375888,"url":"https://github.com/stylewarning/cl-locatives","last_synced_at":"2026-01-07T02:01:36.717Z","repository":{"id":236852834,"uuid":"625691525","full_name":"stylewarning/cl-locatives","owner":"stylewarning","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-09T22:17:17.000Z","size":3,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T23:34:10.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","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/stylewarning.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-04-09T22:06:23.000Z","updated_at":"2024-09-10T14:07:48.000Z","dependencies_parsed_at":"2024-04-29T00:08:21.358Z","dependency_job_id":"8f3e8d95-6c67-440f-b534-31aa7439a4c9","html_url":"https://github.com/stylewarning/cl-locatives","commit_stats":null,"previous_names":["stylewarning/cl-locatives"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fcl-locatives","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fcl-locatives/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fcl-locatives/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fcl-locatives/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stylewarning","download_url":"https://codeload.github.com/stylewarning/cl-locatives/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245708990,"owners_count":20659625,"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-12-04T21:28:07.708Z","updated_at":"2026-01-07T02:01:31.682Z","avatar_url":"https://github.com/stylewarning.png","language":"Common Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"                             CL-LOCATIVES\n                             ============\n\n                           By Robert Smith\n\nLocatives are the Lisp equivalent of pointers, minus the\narithmetic. In Lisp terms, they make the concept of \"places\"\nfirst-class.\n\nThe main API consists of the macro LOCATIVE-FOR, which takes as an\nargument a place, as you would give to SETF; and the function\nDEREFERENCE, which extracts the value of that place, and (SETF\nDEREFERENCE), which sets the value of that place.\n\nThe following example pretty much sums up the API:\n\n(let* ((x (make-array 5 :initial-element 0))\n       (l (locative-for (aref x 2))))\n  (setf (dereference l) 5)\n  (list l\n        x\n        (dereference l)))\n\ngives\n\n(#\u003cLOCATIVE {100612B943}\u003e #(0 0 5 0 0) 5)\n\nas a result. We also have LOCATIVEP, and you can funcall the\nLOCATIVE-WRITER of a locative if you need to deal with multiple values\n(a rare case).\n\nThis code can be very useful for porting over C code which uses\npointers and by-reference values a lot.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstylewarning%2Fcl-locatives","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstylewarning%2Fcl-locatives","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstylewarning%2Fcl-locatives/lists"}