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

Create non-default way to bind variables in optional sub-sequences to nil #198

Open
okamsn opened this issue Jun 1, 2024 · 0 comments
Open

Comments

@okamsn
Copy link
Owner

okamsn commented Jun 1, 2024

We want a way to bind the variables in optional subsequences to nil
while still matching. For example, an optional vector won't match
the fallback value nil for &optional.

Something like the below

;; => (1 2 nil nil)
(pcase (list 1 2)
  ((loopy (a b &optional ([c d] loopy-nil)))
   (list a b c d)))
;; => (1 2 nil nil)
(pcase (list 1 2)
  ;; Look like a function call?:
  ((loopy (a b &optional ([c d] (loopy-nil))))
   (list a b c d)))
okamsn added a commit that referenced this issue Jun 30, 2024
…ing tests.

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
okamsn added a commit that referenced this issue Jul 8, 2024
…ing tests.

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
okamsn added a commit that referenced this issue Jul 8, 2024
…ing tests.

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
okamsn added a commit that referenced this issue Jul 8, 2024
…ing tests.

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
- Make sure `loopy--pcase-destructure-for-iteration` returns a list
  of symbols without duplication.
- For extra safety deduplicate the returned variable list in
  `loopy--destructure-for-iteration`.
okamsn added a commit that referenced this issue Jul 8, 2024
…ing tests.

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
- Make sure `loopy--pcase-destructure-for-iteration` returns a list
  of symbols without duplication.
- For extra safety deduplicate the returned variable list in
  `loopy--destructure-for-iteration`.
okamsn added a commit that referenced this issue Jul 8, 2024
…ing tests. (#199)

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
- Make sure `loopy--pcase-destructure-for-iteration` returns a list
  of symbols without duplication.
- For extra safety deduplicate the returned variable list in
  `loopy--destructure-for-iteration`.

Co-authored-by: okamsn <[email protected]>
github-actions bot added a commit that referenced this issue Jul 8, 2024
…turing, and missing tests. (#199)

This commit was copied from the master branch.

Commit: 1c2a216
Author: okamsn <[email protected]>
Date: 2024-07-08 01:56:02 +0000

Add `substream` and `stream` commands, `&seq` destructuring, and missing tests. (#199)

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
- Make sure `loopy--pcase-destructure-for-iteration` returns a list
  of symbols without duplication.
- For extra safety deduplicate the returned variable list in
  `loopy--destructure-for-iteration`.

Co-authored-by: okamsn <[email protected]>
github-actions bot added a commit that referenced this issue Jul 8, 2024
…turing, and missing tests. (#199)

This commit was copied from the master branch.

Commit: 1c2a216
Author: okamsn <[email protected]>
Date: 2024-07-08 01:56:02 +0000

Add `substream` and `stream` commands, `&seq` destructuring, and missing tests. (#199)

- Add `substream` and `stream` commands.
  - Add `stream.el` to the dependencies.
  - Update Org documentation.
  - Add tests.
- Add `&seq` destructuring for values and places.  The substreams
  should only be destructured using `&seq`.
  - Add tests.
  - Update Org documentation.
  - Define an error for destructuring substreams with `&seq`.
- Disable behavior of optional destructured values until we
  decide how that should work. See issue #198.
- Add missing array tests along with the new `&seq` tests.
  - Convert some tests to new macros `loopy-def-pcase-test`,
    `loopy-def-pcase-test3`, and `loopy-def-loopy-ref-test`.
- Use caching for `loopy--get-var-groups`.
- Make sure `loopy--pcase-destructure-for-iteration` returns a list
  of symbols without duplication.
- For extra safety deduplicate the returned variable list in
  `loopy--destructure-for-iteration`.

Co-authored-by: okamsn <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant