{"id":18687329,"url":"https://github.com/junosuarez/ski","last_synced_at":"2025-09-12T18:14:49.285Z","repository":{"id":6851394,"uuid":"8100092","full_name":"junosuarez/ski","owner":"junosuarez","description":"node module: eponymous functions from the SKI calculus","archived":false,"fork":false,"pushed_at":"2015-12-02T16:40:35.000Z","size":4,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-01T12:24:58.829Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junosuarez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-08T19:47:14.000Z","updated_at":"2015-08-31T04:00:09.000Z","dependencies_parsed_at":"2022-07-21T14:02:59.982Z","dependency_job_id":null,"html_url":"https://github.com/junosuarez/ski","commit_stats":null,"previous_names":["jden/ski"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/junosuarez/ski","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junosuarez%2Fski","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junosuarez%2Fski/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junosuarez%2Fski/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junosuarez%2Fski/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junosuarez","download_url":"https://codeload.github.com/junosuarez/ski/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junosuarez%2Fski/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274852150,"owners_count":25361745,"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-12T02:00:09.324Z","response_time":60,"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":[],"created_at":"2024-11-07T10:32:28.069Z","updated_at":"2025-09-12T18:14:49.257Z","avatar_url":"https://github.com/junosuarez.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ski\neponymous functions from the SKI calculus\n\n## installation\n\n    $ npm install ski\n\n## usage\n\n    var ski = require(ski)\n    var S = ski.S\n    var K = ski.K\n    var I = ski.I\n\n    var log = console.log.bind(console)\n\n    var tenner = S(K, log, 10)\n    // 10 logged to console\n    // tenner === 10\n\n    var truth = ski.K(true)\n    truth()\n    // =\u003e true\n\n    ski.I(5)\n    // =\u003e 5\n\nThe module is also split into files, so you can use commonjs path syntax to only load the function(s) you need:\n\n    var S = require('ski/s')\n    var K = require('ski/k')\n    var I = require('ski/i')\n\n## api\n\ndescriptions adapted from wikipedia:\n\n### `I = function (x)`, the identify function\n\nI returns its argument:\n\n    I(x) =\u003e x\n\n\n### `K = function (x)`, the constant function\n\nK, when applied to any argument x, yields a one-argument constant function Kx , which, when applied to any argument, returns x:\n\n    K(x) =\u003e (y) =\u003e x\n\n### `S = function (x, y, z)`, the substitution function\n\nS is a substitution operator. It takes three arguments and then returns the first argument applied to the third, which is then applied to the result of the second argument applied to the third. More clearly:\n\n    S(x, y, z) === x(z)(y(z))\n\n## license\n[CC 0](http://creativecommons.org/publicdomain/zero/1.0/) (public domain)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunosuarez%2Fski","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunosuarez%2Fski","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunosuarez%2Fski/lists"}