[erlang-questions] How to return all records in dets

Lloyd R. Prentice lloyd@REDACTED
Sun Jun 1 22:09:25 CEST 2014


Thank you, Joe,

So lucid. Wish there was a place where we could capture this so it's easy to find.

At cost of some programming, perhaps an index page into a set of wikis would be a way of capturing tutorials.

Best wishes,

Lloyd

Sent from my iPad

> On Jun 1, 2014, at 5:09 AM, Joe Armstrong <erlang@REDACTED> wrote:
> 
> 
> 
> 
>> On Sat, May 31, 2014 at 8:44 PM, <lloyd@REDACTED> wrote:
>> Hi Joe,
>> 
>> I've resorted to approach 0 many times and much appreciate the generous help I've received from the community. Indeed, response from the author of my Erlang bible is particularly awesome. I hope one day to be competent enough to play it forward.
>> 
>> I also spend a great deal of time in the Erlang man pages. Problem is that I'm one of those soft-headed liberal arts types. So, I often find the man pages near incomprehensible (and not only Erlang). Yes, I perhaps should have taken more math classes to grasp the elegant concision. But my mind doesn't seem to be wired that way.
>> 
>> I can't tell you how many times I've looked at the foldl/n docs and tried to understand what the hell is going on. I get the general drift, but can't bring it down to useful code. There's just too much inside-baseball.
>> 
>> As a self-taught-from-books-and-web Erlang aspirant, I find concrete examples and well-written tutorials most helpful. This gives me leverage to apply your approach 3. In general, the concepts of Erlang are simple enough once I grasp them. In fact, I marvel at the pragmatic elegance. Your books provide particularly lucid explications. But the man pages? My how I wish I had the time and chops to write a parallel set for noobies.
>> 
>> Indeed, would it be helpful if I walked through and commented on the man doc items that give me headaches?
> 
> Absolutely - There is a problem here - which I think should be addressed as soon as
> possible - "It is not easy to common and ask question about man pages" -
> I'd really like to see commenting in the style of the real world Haskell book.
> 
> If you're interested take a look at http://book.realworldhaskell.org/read/types-and-functions.html - in particular look at how comments are added to the text.
> 
> The erlang man pages are generated from XML so a commenting system should be
> easy to make.
> 
> I'd like to see questions about the man pages discussed "inside the man pages"
> if you see what I mean - not "outside the man pages" (ie here)
>    
> ...
> 
> Folds are very common there are the "iterators with an accumulator"
> 
> In an imperative language you might say
>  
>     state = state0
>     for(i in x){
>         state = update(state, f(i))
>     }
> 
> In erlang this is a fold
> 
>     fold(F, State0, X)
> 
> F is a function of I and State which returns a new state, and I iterates
> over the values in X
> 
> so
> 
>    fold(fun(I, S) -> I + S end, 0, L)
> 
> is the same as
> 
>     S = 0;
>     for(I in L){
>        S = S + I
>    }
> 
> This is a very common programming pattern
> 
> Cheers
> 
> /Joe
> 
> 
>> 
>> Many thanks again for your kind help,
>> 
>> Lloyd
>> 
>> -----Original Message-----
>> From: "Joe Armstrong" <erlang@REDACTED>
>> Sent: Saturday, May 31, 2014 1:53pm
>> To: "Lloyd Prentice" <lloyd@REDACTED>
>> Cc: "Erlang-Questions Questions" <erlang-questions@REDACTED>
>> Subject: Re: [erlang-questions] How to return all records in dets
>> 
>> The thing to Google for is "dets man erlang" - which should get you the man
>> page
>> (even better is to store the man pages locally and do "erl -man dets")
>> 
>> You want to "list" all records (I'm not sure what list means here - it
>> might mean
>> "print" or "make a list of").
>> 
>> To make a list of all records you could say:
>> 
>>    dets:foldl(fun(X, L) -> [X|L] end, [], Name)
>> 
>> (Most collections - ie dets, ets, dict, etc. offer some kind of fold
>> operation that
>> traverses all objects in the collection)
>> 
>> To print all records
>> 
>>   dets:traverse(Name, fun(X) ->
>>                            io:format("~p~n",[X]),
>>                            continue
>>                       end)
>> 
>> No need to worry about match specifications.
>> 
>> The best place to start is usually by reading the man pages.
>> 
>> Now that Erlang is is becoming popular you'll find a lot of incorrect
>> solutions to problems posted on stackoverlow.
>> 
>> Best approach is
>> 
>>     0) ask an expert
>>     1) read the man pages for the module, in question
>>     2) experiment with the functions in the man pages in the shell
>>     3) ask/tell this list if the manual pages are ambiguous or
>> incomprehensible
>>     4) search Google/stackoverflow
>> 
>> Cheers
>> 
>> /Joe
>> 
>> 
>> 
>> On Fri, May 30, 2014 at 9:56 PM, <lloyd@REDACTED> wrote:
>> 
>> > Hello,
>> >
>> > I'm cross-eyed from looking at match specifications. All I want to do is
>> > list all records in my small dets table. I once ran across a very neat
>> > query to accomplish that, but for the life can't Google it up.
>> >
>> > Can some kind soul give me a query that works?
>> >
>> > Many thanks,
>> >
>> > LRP
>> >
>> >
>> >
>> > _______________________________________________
>> > erlang-questions mailing list
>> > erlang-questions@REDACTED
>> > http://erlang.org/mailman/listinfo/erlang-questions
>> >
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140601/a5dd48da/attachment.htm>


More information about the erlang-questions mailing list