{"id":20704616,"url":"https://github.com/egison/egison-tutorial","last_synced_at":"2025-04-23T01:25:54.807Z","repository":{"id":8547478,"uuid":"10169548","full_name":"egison/egison-tutorial","owner":"egison","description":"The Egison tutorial","archived":false,"fork":false,"pushed_at":"2021-12-18T11:36:14.000Z","size":221,"stargazers_count":15,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T20:51:09.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"gothiclady07/gothiclady07.github.io","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/egison.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}},"created_at":"2013-05-20T09:16:36.000Z","updated_at":"2024-11-18T20:30:40.000Z","dependencies_parsed_at":"2022-09-17T08:10:31.542Z","dependency_job_id":null,"html_url":"https://github.com/egison/egison-tutorial","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egison%2Fegison-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egison%2Fegison-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egison%2Fegison-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egison%2Fegison-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/egison","download_url":"https://codeload.github.com/egison/egison-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250350724,"owners_count":21416180,"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-11-17T01:13:07.690Z","updated_at":"2025-04-23T01:25:54.789Z","avatar_url":"https://github.com/egison.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Egison Tutorial\n\nThis is a repository for a tutorial program of [Egison](https://github.com/egison/egison).\nEgison is a pattern-matching-oriented, purely functional programming langauge.\nUsing Egison, we can represent intuitive patterns for non-free data types such as multisets, sets, graphs, and mathematical expressions.\n\nFor more information, please visit [Egison website](http://www.egison.org).\n\n## How to compile and run\n\n```\n% cabal install\n% egison-tutorial\nEgison Tutorial Version 4.0.0\nWelcome to Egison Tutorial!\n** Information **\nWe can use a \"Tab\" key to complete keywords on the interpreter.\nIf we type a \"Tab\" key after a closed parenthesis, the next closed parenthesis will be completed.\n*****************\n==============================\nList of sections in the tutorial.\n1: Arithmetic\n2: Basics of functional programming\n3: Basics of pattern matching\n4: Pattern matching for multisets and sets\n5: Symbolic computation\n6: Differential geometry: tensor analysis\n7: Differential geometry: differential forms\n==============================\nChoose a section to learn.\n(1-7): 4\n====================\nWe can describe pattern matching for multisets and sets.\nWe can change the interpretation of patterns by changing the matcher, the second argument of the matchAll expression).\nThe meaning of the cons pattern (::) is generalized to divide a collection into \"an\" element and the rest.\n\nExamples:\n  matchAll [1, 2, 3] as list integer with $x :: $xs -\u003e (x, xs)\n  matchAll [1, 2, 3] as multiset integer with $x :: $xs -\u003e (x, xs)\n  matchAll [1, 2, 3] as set integer with $x :: $xs -\u003e (x, xs)\n====================\n\u003e matchAll [1, 2, 3] as list integer with $x :: $xs -\u003e (x, xs)\n[(1, [2, 3])]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegison%2Fegison-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fegison%2Fegison-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegison%2Fegison-tutorial/lists"}