|
|
|
|
|
by rattray
3354 days ago
|
|
I'm currently thinking through the design of a pattern-matching feature for JavaScript, through a superset I'm building called LightScript[0]. I liked that this article laid out the specific options and various shades of gray that can constitute parts of "pattern matching". I'm curious for thoughts on a syntax like this: x = match y:
case > 3: () => "it's bigger than three"
case 2: () => "it's strictly equal to two"
case Integer: (x) => `some int smaller than two: ${x}`
case String: (s) => `some string: ${s}`
case Array: ([ first, ...rest ]) => `a list starting with ${first}`
case Object: ({ a, b }) => `an object with property a: ${a}`
This is somewhat more difficult given that even when using Flow or TypeScript, there's relatively little type granularity available at runtime.Any thoughts? [0] http://lightscript.org |
|