Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add syntax for late-bound function defaults #618

Closed
evhub opened this issue Nov 12, 2021 · 3 comments
Closed

Add syntax for late-bound function defaults #618

evhub opened this issue Nov 12, 2021 · 3 comments

Comments

@evhub
Copy link
Owner

evhub commented Nov 12, 2021

See: https://www.python.org/dev/peps/pep-0671/

Would need to be supported in normal and pattern-matching function definition.

@evhub evhub added the feature label Nov 12, 2021
@evhub
Copy link
Owner Author

evhub commented Jan 17, 2022

Currently, pattern-matching functions always use late-bound defaults, which is a bug right now, but could be turned into a feature to help support this.

@Jatinjain07Dazai
Copy link

I would love to work on it can you assign development of this feature to me

@evhub
Copy link
Owner Author

evhub commented Feb 25, 2024

This is now a full-fledged feature of pattern-matching functions, including support for syntax such as match def f(x, y=x) = (x, y).

@evhub evhub closed this as completed Feb 25, 2024
evhub added a commit that referenced this issue Feb 25, 2024
@evhub evhub added this to the v3.1.0 milestone Feb 25, 2024
@evhub evhub mentioned this issue Mar 1, 2024
evhub added a commit that referenced this issue Mar 2, 2024
See Coconut's
[documentation](http://coconut.readthedocs.io/en/develop/DOCS.html) for
more information on all of the features listed below.

Language changes:
* #814: Changes to statement lambda scoping rules, including capturing
names introduced in the surrounding expression.
* #618: Changes to handling of pattern-matching function defaults
including support for e.g. `match def f(x, y=x) = (x, y)`.
* #809: New array concatenation implicit partials (e.g. `[. ; a]`).
* #823: New `(x := .)` implicit partial syntax (only available in
pipes).
* #807: New `lift_apart` built-in combinator.
* #813: New `(if)` operator function.
* #826 (thanks @JayXon!): Better universalization and `fmap` support for
`bytes` and `bytearray`.
* #816: Support for `xarray` to match existing `numpy`/`pandas` support.
* #817: New `to` argument to `all_equal`.
* #821 (thanks @GolfingSuccess!): Expanded implicit function application
syntax to support string literal methods.

Compiler changes:
* #799: `coconut-run` and `coconut --run` now work on packages rather
than just files.
* #812: Better formatting of Coconut exceptions.

Bugfixes:
* #810: Fixed an issue compiling certain syntax constructs in the
Coconut Jupyter kernel.
* #818, #825 (thanks @kg583, @dokutan!): Fixed parsing of different
Unicode line break characters.
* #822 (thanks @JayXon!): Fixed parsing of Unicode backward pipe
operators.
* #819, #820 (thanks @kg583!): Fixed some incompatibilities between
Python and Coconut syntax.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants