{"id":13803820,"url":"https://github.com/eigenhombre/cl-oju","last_synced_at":"2025-09-09T02:31:42.280Z","repository":{"id":37024148,"uuid":"209324739","full_name":"eigenhombre/cl-oju","owner":"eigenhombre","description":"Some Clojure-ish thingies for Common Lisp","archived":false,"fork":false,"pushed_at":"2025-04-25T17:13:45.000Z","size":182,"stargazers_count":20,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-08T19:26:34.708Z","etag":null,"topics":["clojure","common-lisp","lisp"],"latest_commit_sha":null,"homepage":"","language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eigenhombre.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-18T14:08:45.000Z","updated_at":"2025-04-25T17:13:48.000Z","dependencies_parsed_at":"2025-03-27T14:39:31.892Z","dependency_job_id":"707dd2eb-7574-419f-8ed9-7b76e519ef13","html_url":"https://github.com/eigenhombre/cl-oju","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eigenhombre/cl-oju","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenhombre%2Fcl-oju","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenhombre%2Fcl-oju/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenhombre%2Fcl-oju/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenhombre%2Fcl-oju/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eigenhombre","download_url":"https://codeload.github.com/eigenhombre/cl-oju/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenhombre%2Fcl-oju/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274232626,"owners_count":25246027,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["clojure","common-lisp","lisp"],"created_at":"2024-08-04T01:00:38.160Z","updated_at":"2025-09-09T02:31:42.265Z","avatar_url":"https://github.com/eigenhombre.png","language":"Common Lisp","funding_links":[],"categories":["Clojure"],"sub_categories":[],"readme":"# cl-oju\n\n![build](https://github.com/eigenhombre/cl-oju/actions/workflows/build.yml/badge.svg)\n\n\u003cimg src=\"/words.jpg\" width=\"400\"\u003e\n\n\u003e What is *oju*? A Mysterious Sauce used as a special ingredient\n\u003e sourced (some would say pilfered) from an advanced civilization\n\u003e thirty years in the future (far beyond the late 1980's).\n\n`cl-oju`: a few idioms, mostly relating to sequences, that I miss\nwhen writing Common Lisp.\n\nThere are many more comprehensive utility libraries out there, such as\n[Serapeum](https://github.com/ruricolist/serapeum).  This one is\nfocused on a fairly narrow goal: to provide fairly simple equivalents\nto core Clojure functions.  Since I frequently reach for (and write)\nthese out of habit, I wanted a place to put them.\n\nI haven't needed to worry too much about comprehensiveness or\nperformance, though PRs to improve either will be gratefully reviewed.\nI typically add functions here when I reach for them out of habit while\nworking in Common Lisp.\n\nNote that I stick to the functional *interface* of familiar Clojure\nexpressions, but do not worry about immutable data structures or\nlaziness in this library.\n\nIf you're new to Common Lisp coming from Clojure, it may be better to\nlearn \"the Common Lisp way\" of doing things than to rely on these\nfunctions; but this library can still be a reference point to see *a*\nway of doing things you're used to.\n\nSupported operators:\n\n    comment\n    comp\n    distinct\n    drop\n    drop-while\n    filter\n    frequencies\n    group-by\n    if-let\n    if-not\n    interleave\n    interpose\n    juxt\n    neg?\n    not=          (based on #'EQUAL)\n    partial\n    partition-all\n    partition-by\n    clj-partition (called \"partition\" in Clojure;\n                   also aliased to \"partition-n\")\n    pos?\n    clj-print     (called \"print\" in Clojure)\n    println\n    rand-int\n    rand-nth\n    range\n    repeat\n    repeatedly\n    slurp\n    sort-by\n    spit\n    str\n    take\n    take-while\n    when-not\n    with-out-str\n\n# Usage\n\nAvailable on [Quicklisp](https://quicklisp.org) or\n[Ultralisp](https://ultralisp.org/projects/eigenhombre/cl-oju):\n\n    (ql:quickload :cl-oju)\n\nExample:\n\n    (in-package :cl-oju)\n\n    (mapcar (juxt (comp #'length #'str)\n                  #'identity)\n            (repeatedly 10 (lambda () (rand-int 1000))))\n    ;;=\u003e\n    '((3 717) (3 508) (3 238) (3 366) (2 50)\n      (3 564) (3 395) (2 18) (3 446) (3 935))\n\n# Testing / Building\n\n`make test` should be sufficient to run the tests using SBCL, or `make\ntest-ecl` for ECL.  You can also run them in Docker (`make docker`),\nwhich is what the CI for this project does.  You'll obviously need\n`make` and Docker installed for this.\n\n# License\n\n[MIT](https://github.com/eigenhombre/cl-oju/blob/master/LICENSE)\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigenhombre%2Fcl-oju","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feigenhombre%2Fcl-oju","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigenhombre%2Fcl-oju/lists"}