{"id":22375854,"url":"https://github.com/stylewarning/parameterized-function","last_synced_at":"2026-03-19T22:37:08.158Z","repository":{"id":236852842,"uuid":"625692054","full_name":"stylewarning/parameterized-function","owner":"stylewarning","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-09T22:22:45.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T23:34:10.954Z","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","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":"2023-04-09T22:09:01.000Z","updated_at":"2023-10-31T18:09:35.000Z","dependencies_parsed_at":"2024-04-29T00:08:21.675Z","dependency_job_id":"1b025951-96f5-4cf5-8ebf-69ef10743fa3","html_url":"https://github.com/stylewarning/parameterized-function","commit_stats":null,"previous_names":["stylewarning/parameterized-function"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fparameterized-function","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fparameterized-function/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fparameterized-function/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stylewarning%2Fparameterized-function/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stylewarning","download_url":"https://codeload.github.com/stylewarning/parameterized-function/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:27:59.245Z","updated_at":"2026-01-06T06:39:43.083Z","avatar_url":"https://github.com/stylewarning.png","language":"Common Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"                        PARAMETERIZED-FUNCTION\n                        ======================\n\n                           By Robert Smith\n\nThis package provides functions which can be parameterized, whose\nparameters are dispatched at compile time.\n\nParameterized functions are defined by first declaring the \"dispatch\nfunction\". For example, if we wanted a general multiply function that\ngets dispatched at compile time, we might declare the following:\n\n  (define-dispatch-function mult (xtype ytype) (x y))\n\nNext, we can define several parameterized functions.\n\n  (define-parameterized-function mult (:integer :integer) (x y)\n    (* x y))\n\n  (define-parameterized-function mult (:integer :string) (x y)\n    (with-output-to-string (s)\n      (loop :repeat x\n            :do (write-string y s))))\n\n  (define-parameterized-function mult (:string :integer) (y x)\n    (with-output-to-string (s)\n      (loop :repeat x\n            :do (write-string y s))))\n\n  (define-parameterized-function mult (:string :string) (x y)\n    (concatenate 'string x y)))\n\nIf we call MULT with a constant (quoted) list as the first argument,\nthen it will be expanded, at compile time, to one of the above\ndefinitions. If the first argument is not constant, then dispatch will\noccur at runtime.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstylewarning%2Fparameterized-function","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstylewarning%2Fparameterized-function","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstylewarning%2Fparameterized-function/lists"}