how to hold lists

Serge Aleynikov <>
Fri May 12 14:10:58 CEST 2006


This should be easy enough if you write a function that auto-generates 
the source file given some constants.

Yani Dzhurov wrote:
> 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.
> 
> 10x,
> 
> yani
> -----Original Message-----
> From: Serge Aleynikov [mailto:] 
> Sent: Friday, May 12, 2006 2:45 PM
> To: Yani Dzhurov
> Cc: 
> 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.
> 
> Serge
> 
> 
> 
> 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
> 
> and
> 
>>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