Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

if python were to have algebraic data types, it might also need pattern matching.


I don't think pattern matching is necessary for ADTs. It's useful, but you could have e.g.

> if MyType.ConstructorA(a):

> ...

> elif MyType.ConstructorB(a):

> ...

or even something like

> with MyType.ConstructorA(a) as b, c:

> ...

> else with MyType.ConstructB(a) as d:

> ...

a "with/else with" construct would be a fairly straightforward addition to Python's "context manager" interface.


Yes, for better of worse Python is nowadays fairly conservative in introducing backward-incompatible syntax changes, and pattern matching would probably require quite a bit of new syntax (and benefits a lot from a strong compiler).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: