Use Ord by default for all set-like operations

Open
#192 25 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

  • #203 by @JordanMartinez — closed without merging

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Domain
backend

Research direction

The issue names union, intersect, and difference, and points to #91 and #56 for prior decisions and behavior. Read those discussions and the existing implementations and tests for these functions to understand their current semantics and the proposed Ord default. Done means the intended complexity and duplicate behavior are agreed on and covered by tests; the long discussion and prior pull request show this work may need maintainer direction.

Written by the indexing model from the issue text.

Description

purs-0.15 status: blocked type: breaking change

We already made nub use Ord by default in #91, but there are a few other unnecessarily quadratic functions in this library still which probably deserve the same treatment. I think these are union, intersect, and difference.

As well as being quadratic, union and difference have a strange-seeming behaviour where duplicates are only preserved in the first argument:

union [0, 0] [1, 1] == [0, 0, 1]

See #56 for more info. We ought to be careful about changing this behaviour but I think we should consider it, since I think it’s very likely to trip people up and we will be making breaking changes to these functions anyway if we do this.

Dominant language
PureScript
Stars
58
Forks
70
Avg merge
2d 22h
Merged PRs (30d)
1

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from purescript/purescript-arrays

All issues in purescript/purescript-arrays

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.