7 ms·
Show HN: Conway's Game of Life in TypeScript's type system
TypeScript playground: https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcCiBHArgQwDYDOAPABoA0cAmgHxwC8AUHHABREAq1LAlPbe3FAxgAOwAmBOCTgB+OAEY4ALjgAmXkNESmrDl151+gkMPGTKshcrW85MKFlQqAZvgLAA3AwZIUcAMLAeHj0cADkIGFwAD7hAHRhPsioAEIQOFBioYHBANoAugXevqgAavgAlmIAkuKgRACCUFDGphJwWCIA1iIQAO4iBbSMzGggAMZ4WGLARF3AiBDOcE1QFGOT07Pzi8urFAAGACQA3iJYALYARsBQAL4H1LSaZnDHJxUizrdwAHKtWkk52utweOjkvx0KhEwAAbrdvAB6RFwAAiEGABBEYXgAAscOI8KgYQBzHAwCrwuDQOAzcYVC74ODjHDuAgMZFwaowMKSAm9RCfEkICBwfGE1AwXHEuE-FnuCgEUXVMIXDoEIVwAC0ilZcBwcHcIgpMJCsPwjjgnwIwhwYiSfgAylgrvIiP8Xu1gTc1gEAa8AAwFUJDeg6eyWz2STC4QjuigB2ixGNueNwb23Wjg7XyKF-f3tXJxYv+BOFMJEkQkqVhfI6Zhyfy5Cuiau42v16zO11poslsvUYrJFZiMRuj0mQFwAAKEAIBHKU0xFFn88XjkkUfTlx9FH8BckQfyIfywx0KbjvwoGagz0nrwjwGzOrzE7akibLarNbrzAbcD7OJSzgANy0rNtawPGc5wXC1MU7f9AOA0Dm3An8EOsHVmE5MAoFlY0rTqEBqSweAljgK4IE6bQ-2sBpR3HFcYPXZcAOLICByHPxqgIAAZSlZjSDIxEdGByVQLchMyChpC3G8KAsOSd0zMNmFk+92n8CA8FqGYQAAeWcIgpJEsThEHf9FI0yQACV+l00BDOM9JMlE8SLL-OQTLc4RckoQoSGPLcIkSWj-0fDCXDcJ9aKiwgYusVx4q41AtM6GB2AcWZVigglEAKPcoKPE8z2YHKt1yT5vhaXiKHYqqfhs39LF4qCItoxsqONTLHCIGyKCQzjYoCLqMqyvq9w8lRPzQ9s6wdVKgjwHzBJc0zxKgkyZKgrSdKIpzvLM4BqAUqC7L6ByDKMw73NKkb0p62Zck7Hj+PhZzhJWihuzdEgTrgH6iBoE6Xr4gSPtco6ZO+l03WBshQbe1bPqhkcx1IPdtMug61pWp4YZ7eHEfBm7hAoej0fIEa9r0nGUduhSQdo16Sdx1GKd+zGacc662YZtG4Yoc7sd5+nzPx4n3tJ4BoYFoGhfs-bRch26mb-Fmpb5smAdh0h-o5+W4GFpWIfW8W1eYDXkZV7XAb+xmdFPFL0FhbT4RyPBTZWza1u2rddpFr2jv+qz3yNxXaeVs3jru6W-ICoLrPiULLA9lag-E2WaCggBmTs5BCzsVDCBI8zj-zckCqDC46gIlvT6Ws7vMPVBiOA87Cywa7C4vS+GmF4SgZ20FdvB4XOogdH0qAKhJaWfeEhHmFDqdjcjohp9n6W1f8dSw+KugAPyJeAiwZpzp2pbg0PgqGGGOAdF31DWx-HasZNze56147sxHt3gAnhhT+jcMKUBPrRJCVNQLgL-EhM+UBzrrFHu7JaG8Z5fzFjLAIJBn7fjmozZqzApqn3Pv0YeyDZhT3QfPSSvtH7wJoUnEyJ4T7+BXoGa+R8Eb30fpQXBEFE5hzXjzNBW9v4eTkH-MesxgHfwGuxfwDC5Eu3-hPWRmC9x8K-AI6gx82IljASBJ2zBppKMweQ-+vwM7CAXtJfMSkQS+n3FuA+R87ozRfnNKCkJ-zSzzFI+EViAnW2jv9K8+iOJGMHAtcOF0TaMLDiZe+i4qiXWsT-Eo1NA4JKnEk0IKSahEXSbkG8TsOQojoJUqp1Sam1LqdU8p9A6lwBSGgAA4tUf47A0COnYJ0tpTS6mNPqSM0ZNSkQonYJiE0woACqFI8AVApPBGJAApCAnwJ4X39lfPRjooI2hnlWUIYQwh3W2UnSqXwfitR2cEOqxYGotBspfPI+RmpyHWZs-oE03inEdHcU4vEHjEMdM7acRyYAmXSbYsQFB+IwkdMAMABz7CakPmEAAOtib6qKjnCgxWc0IOgcmvCudVEhCD+ivLwAVOA9VrktF+EIc6m4mFrQ+QDauKd-wQs+FCta7oWX9AIPCz4wAkVgAoF8kQE9FGkL6E8IuM5IXQuZSYVlYrEXIsOP8wFJwEUSuRfqmVcr4HnWoCCvMYKYmiXxewCA0L9lbkOUKPcZjMiwpYZSi5YcPacNDCMLlW53hPLgMC04YabJgn-LcpOWLsT5x9f0fhr8XEYTkHaoUDroX9UpVtNxkUAZoqrDmwVea4HNALfKqlfQ9FDGVXGv1S0M3FvtY68t7qq2+wiTWxB4bjE9zbdmjtwlfk1urea-oxCJ1rQmXAKZNoAisngpyAAEhAQe1It1SklMOEQOALiYhFIaYAkppQkRgGAUi87cQwCvQQJQyJxgQBEH0HAiBFnfDiC+i4iI+gVC6BUREKRFndARJyactwKgQCyKoGJoHPjzBaIfLNpbR2ZCIAcBg7EGAgHwzh4sDBHjgsQ+BqAihD58uNNCsjyHByZOnHR24rcqOqsFcE4yYH6MMeHEx7jtwc6hGowKsdwSrHMd9KoJVjHJMABZhPsbExQiTAnfQ5yVY0u9D6n2IhfW+j9X7gA-ogH+gDQHERtLnCgKAAB9EkiyZh2ZJJ0RpUGZ6wfbgGGJVmCA2baY524bTOihDQySMtY7sPsWizF2LcX4sJaI4l5L0WQApdi4R9L8W0tpay7h9L+HYuFeS8VmLmWEu5biJVqr1Xsu1aS6VmLtXKuNbyw1+rxYWs1dS1VtrSXEvNbix15L5XsvsWG31-rJWJuTam7N+bRGSMxOnMFkQlGVX8uhb5-zgWoCrcHJyRjq3WMbZoxxlTRBttBd26tig8glWHb46toTbHNvncsZd6z12qhBc6BQaTB2URHc6Ap17Z3lMfau3tm7f324PaB09zoABWRTb2IfSKsVDgLP29uw7k-DhAiORAADZUfg8w+Jz7fnvtOdu3AJHBPgciAAOxk9ExTi7WOYciAoMTxnROAAcbPoWU65zjunzP+d+BW50AAnML97GOqc7fF7DgXUvUAy7WwGBX6PAnK5p79nncBZca5nKt+Q62RMi85196HqvjfyETIDwn0uLcnet4r-XYvaew8t2brX8gXunfZ2IIgou7fY9947gHjSmfyFByHm3kPI-c7uxpl38eUdg9D+H231P7fR7u-jzPRP5Ck5z8npXPujd3YZ6Xt3nR5Cs8r174AmPU8O7u3zhvmuLdC9b3r9vBvC+14UJL3v5um-y8HxzlPBeo9j-kOryfWvVA69n2HiPC+08KFN6v47VulNz+r53ovahndx6J6oD3x+t-55V+f1Q92D+dFUMHz3Q+O87672oWPj3G8RBVBE9P8T9vcz8x938A9jts8k829v9H9ICS8r9ADVAK84Cv8R9F9cdjdVB68UC+838W8MCwDh8a8cD-se8CCp8gCB8SD7959ECKC1AJ9qC18Z96C89GDDdmDVAV82DnsN9ODt8mC6dVB99ltnsj80dSCECeC6cc5L8ADCCRAc5b8ZCGDT8f9z8c4X8GAgA https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmY...
- thdespou 3y agoThis is probably the slowest Game of Life ever.
- brundolf 3y agoCute :) Any sufficiently advanced type system is indistinguishable from an interpreter!
- klysm 3y ago=> turing completeness
- evolveyourmind 3y agoYou can also easily implement meta-languages. Eg. lambda calculus: https://github.com/desi-ivanov/ts-lambda-calc https://github.com/desi-ivanov/ts-lambda-calc
- deleted 3y ago[deleted]
- calebegg 3y agoHow do I run this/see the results? I'm a little lost.
- aazo11 3y agoSame here. I hit "run" but get an error
- _jab 3y agoBecause it's all just types, there's nothing _to_ run. Instead, you'll want to hover your cursor over the `PGunX` types at the end of the file in the playground; this will cause the TS editor to compute that type and it should display a string corresponding to the board state.
- kiechu 3y agoIt is year 2035. TypeScript type system gained conscious.