{"id":22972939,"url":"https://github.com/lwhjp/racket-jlang","last_synced_at":"2026-01-29T09:13:40.562Z","repository":{"id":40267680,"uuid":"47949158","full_name":"lwhjp/racket-jlang","owner":"lwhjp","description":null,"archived":false,"fork":false,"pushed_at":"2017-10-02T04:11:42.000Z","size":116,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-11T19:19:39.125Z","etag":null,"topics":["racket"],"latest_commit_sha":null,"homepage":null,"language":"Racket","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/lwhjp.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}},"created_at":"2015-12-14T03:08:23.000Z","updated_at":"2023-03-22T05:01:34.000Z","dependencies_parsed_at":"2022-09-09T05:41:00.792Z","dependency_job_id":null,"html_url":"https://github.com/lwhjp/racket-jlang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lwhjp/racket-jlang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-jlang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-jlang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-jlang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-jlang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lwhjp","download_url":"https://codeload.github.com/lwhjp/racket-jlang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwhjp%2Fracket-jlang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28873697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T07:35:32.468Z","status":"ssl_error","status_checked_at":"2026-01-29T07:33:31.463Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["racket"],"created_at":"2024-12-14T23:36:26.691Z","updated_at":"2026-01-29T09:13:40.543Z","avatar_url":"https://github.com/lwhjp.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"J in Racket\n===========\n\nInstallation\n------------\n\nProbably the easiest method is to create a local link using\n`raco pkg install` in the top level of this repository.\nThis will create links so that `require` and friends work properly.\n\nMotivation\n----------\n\nI've been playing with J a little, and the rank-based implicit looping\nand point-free style are very appealing. As a fan of Racket, I'd like\nto see all the cool ideas from other languages available. This in\ntheory would mean that any cool language could be implemented easily\non top of Racket using appropriate libraries and simple parser and\ntranslation modules (tricky semantics aside).\n\nSo, for fun, my goal with this project is to implement most or all\nof the J language in Racket, and factor out all the useful bits into\nseparate collections which can be packaged separately.\n\nStatus\n------\n\nLanguage support is far from complete, but some simple expressions\n(\"sentences\") can be evaluated. I've made a start on a Racket-style\n\"ranked apply\" which is one of my favourite concepts from J.\n\nThere is a `#lang j` which isn't very useful, but will evaluate\nJ sentences in order.\n\nYou can `(require j)` to get access to a `j` procedure for evaluating\nJ sentences.\n\nExample:\n\n    \u003e (require j)\n    \u003e (j \"+/ 1 2 3\")\n    6\n    \u003e (define sum/j (j \"+/\"))\n    \u003e (sum/j '(4 5 6))\n    15\n    \u003e (sum-j '(1 2 3) '(4 5 6))\n    (array #[#[5 6 7] #[6 7 8] #[7 8 9]])\n\nUsing frames:\n\n    \u003e (require math/array j/rank)\n    \u003e (apply/rank + (list '(100 200) (index-array '#[2 3])))\n    (array #[#[100 101 102] #[203 204 205]])\n\nNote that this is the usual Racket `+` function. You can define\nmore advanced operations by using `lambda/rank`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwhjp%2Fracket-jlang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flwhjp%2Fracket-jlang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwhjp%2Fracket-jlang/lists"}