lists.lysator.liu.se
Sign In Sign Up
  • Sign In
  • Sign Up
  • Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

2025

  • June
  • May
  • April
  • March
  • February
  • January

2024

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2023

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2022

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2021

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2020

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2019

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2018

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2017

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2016

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2015

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2014

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2013

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2012

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2011

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2010

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2009

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2008

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2007

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2006

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2005

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2004

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2003

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2002

  • December
  • November
  • October
  • September
List overview
Download
thread

Xor

Martin Stjernholm, Roxen IS @ Pike developers forum
6 Feb 2003 6 Feb '03
4:10 p.m.

I'm glad that the index operator on multisets only accesses one element even if there are several with the same index. That makes it easier to extend it to hold real values.

In the new implementation (which has a well defined order), the indexing operations (including m_delete) always operate on the last element with the given index. I thought that to be most useful since += can be used to add elements which might be duplicates and the normal indexing operations will default to the last of them. (There will of course also be other utility functions to set and get all values that share the same index.)

See the comment blurbs in rbtree.h and multiset.h for more details of how I've intended the operations. Opinions are welcome; now is a good time to affect it.

/ Martin Stjernholm, Roxen IS

Previous text:

...

2003-02-06 10:12: Subject: Xor


I have been wondering why the index operations on multisets work like they do:

| > multiset v=(<1,1,1>); | > v[1]; | Result: 1 | > v[1]=0; | Result: 0 | > v; | Result: (<1,1>)

This could of course be used to do a `- that removes one for one:

multiset res=copy_value(v); foreach (v;mixed elem;) res[elem]=0; // remove one

But why doesn't v[1] return 3 above, and remove all the elements with v[1]=0?

It would also be much more useful to do v[1]=17 to get 17 of element 1. You can't, however, even add elements using that method now:

| > v[1]=17; | Result: 17 | > v; | Result: (<1,1>) | > v[1]=1; | Result: 1 | > v; | Result: (<1,1>)

How much would break if we fixed this behaviour, so that

multiset v=(<1,1,1>); v[1] == 3 v[1]=0 => v==(<>) v[1]=17 => v==(<1,1,1,1...1,1>) /* 17 elements */

Sidenote: This code works for the above `- for both the current and my suggestion:

multiset res=copy_value(v); foreach (v;mixed elem;int n) res[elem]-=n; // remove n

/ Mirar

0 0
Reply

Back to the thread

Back to the list

Powered by HyperKitty version 1.3.7.