how to hold lists

Yani Dzhurov <>
Fri May 12 13:50:16 CEST 2006

Yeah, this is the way it's done now...or some kind of ...
But now I need to add some more values to these enums...
And imagine I add new_Monday at first position in my enum...
Then I have to rewrite all:
day(new_monday)-> {weekday, 1};
day(monday)    -> {weekday, 2};
day(tuesday)   -> {weekday, 3};

and I need to manage an enum with about 100 values ... and if I need to
change these funs every  time a new value is added /a value may be added at
any position, not just the first one.../ .. it would become a hell:)
So I need a better way to manage these enums.


-----Original Message-----
From: Serge Aleynikov [mailto:] 
Sent: Friday, May 12, 2006 2:45 PM
To: Yani Dzhurov
Subject: Re: how to hold lists

Looks like Thomas' advice was well suited for this problem:

day(monday)    -> {weekday, 1};
day(tuesday)   -> {weekday, 2};
day(saturday)  -> {weekend, 6};  % or is it 20 in your case?
day(sunday)    -> {weekend, 7}.

is_weekday(D)  -> element(1, day(D)) == weekend.
day_of_week(D) -> element(2, day(D)).

This should indeed be faster than working with lists.


Yani Dzhurov wrote:
> You are right :)
> I need these lists to simulate some kind of enumarations.
> I have two big enums /100 fields each/ which I want to split in 5 lists
> simulate them as enums in Erlang.
> For instance
> enum WeekDays {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday=20,
> Sunday}
> spilt them to lists
> days1=[monday, tuesday, wednesday, thursday, friday]
> And days2=[saturday, sunday].
> So when I have 
> WeekDay 1;
> I can easily get it from the first list;
> list:nth(1,days1).
> If I have WeekDay 22;
> lists:nth(22 - Offset, days2).
> Also I need easily to get the value of WeekDays as ints.
> So from thursday -> 3;
> So I would get the index of thursday in the list days1.
> This procedure looks pretty stupid in this example.
> But when I have large enums and need to insert new values in it /{Monday,
> Tuesday, Wednesday,SOME_OTHER_WEEK_DAY, Thursday, Friday, Saturday=20,
> Sunday}/ it would be easy to maintain. 
> If someone else has a better idea, pls advise me:)
> 10x,
> yani
> -----Original Message-----
> From: 
> [mailto:] On Behalf Of Richard Carlsson
> Sent: Friday, May 12, 2006 1:18 PM
> To: Yani Dzhurov
> Cc: 
> Subject: Re: how to hold lists
> Yani Dzhurov wrote:
>>I need to have some kind of global variables where to hold a couple of 
>>lists. Also need them to process them pretty often by thousand of
> processes.
>>I have about 5-6 lists with about 50 atoms each.
>>Is there any better approach?
> I think that if you describe in more detail what these lists contain
> and how you want to use them (e.g., what does "process them" mean,
> more exactly?), people will be able to give you much better advice.
> 	/Richard

More information about the erlang-questions mailing list