* Re: print out all members of a list, v.1.0
[not found] ` <mailman.5.1298917525.1451.help-gnu-emacs@gnu.org>
@ 2011-02-28 21:32 ` Tim X
2011-03-01 5:48 ` Pascal J. Bourguignon
2011-03-01 6:02 ` rusi
2 siblings, 0 replies; 30+ messages in thread
From: Tim X @ 2011-02-28 21:32 UTC (permalink / raw)
To: help-gnu-emacs
ken <gebser@mousecar.com> writes:
> Ughhh. Finally, after reading many, many info pages and running a dozen
> or so google searches and reading four or five that many web pages over
> the past couple days, I found what I was after... mapconcat. Still then
> it took a bit of reading error messages and playing around with syntax,
> but it's working. All that for one line of code!
>
> I've programmed in a lot of languages over the decades, but elisp
> definitely has the steepest learning curve... prolly cuz it's so
> hodge-podgey. Well, this isn't a discussion I have time for. I'm just
> sayin', if not for emacs, elisp would be gone... and it might be gone
> anyway in a generation or two. I'll leave it to those who know the
> language better than I to if/how to prevent that happening.
>
>
Hi Ken,
Elisp is what actually differentiates Emacs from other editors.
if you have programming experience, but finding elisp difficult due to
syntax and a feeling it is very "hodge-podge", I would strongly
recommend you read the "Introduction to Emacs Lisp" which is bundled
with emacs (from version 23 onwards) or from the gnu website.
The document states it is targeted at non-programmers, which may put you
off. However, elisp (and lisp in general) has some conceptual
differences that can make it harder than necessary if you are use to
other more procedural languages like C or one of the scripting
languages. Some of the terminology will seem very alien (i.e. car, cdr
etc) but are in fact quite simple conceptually. Understanding the REPL
is important.
One reason I think you may find this useful is that a common property of
lisp languages is a very small, simple and consistent syntax. As you
have found this a problem, I'm guessing you may be missing some basic
grass root concepts underlying how it works. Once you have these
concepts and adjust to the slightly different lisp development model
(i.e. using the repl to experiment and build up small bits of code),
there is a good chance you will feel very comfortable with the language
and will frequently find yourself knocking up small elisp functions to
automate tasks.
Once your comfortable with the langauge, the biggest challenge you will
face is just knowing what funnctions already exist. This is where
getting comfortable with the emacs help, apropos and manual helps. Most
of the time, you can achieve what you want just by glueing together
already existing lower level functions.
HTH
Tim
--
tcross (at) rapttech dot com dot au
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
[not found] ` <mailman.5.1298917525.1451.help-gnu-emacs@gnu.org>
2011-02-28 21:32 ` print out all members of a list, v.1.0 Tim X
@ 2011-03-01 5:48 ` Pascal J. Bourguignon
2011-03-01 6:02 ` rusi
2 siblings, 0 replies; 30+ messages in thread
From: Pascal J. Bourguignon @ 2011-03-01 5:48 UTC (permalink / raw)
To: help-gnu-emacs
ken <gebser@mousecar.com> writes:
> Ughhh. Finally, after reading many, many info pages and running a dozen
> or so google searches and reading four or five that many web pages over
> the past couple days, I found what I was after... mapconcat. Still then
> it took a bit of reading error messages and playing around with syntax,
> but it's working. All that for one line of code!
>
> I've programmed in a lot of languages over the decades, but elisp
> definitely has the steepest learning curve... prolly cuz it's so
> hodge-podgey.
It is not. Just read a lisp programming course.
You can in general use Common Lisp books and tutorials to good effect,
since emacs lisp is close enough to Common Lisp (even if emacs lisp has
some limitations that you need to understand). The point is that there
is much more material for Common Lisp studying than for emacs lisp.
http://www.gnu.org/software/emacs/emacs-lisp-intro/
http://www.gnu.org/software/emacs/manual/html_mono/elisp.html
http://cliki.net/Online%20Tutorial
http://www.cliki.net/Lisp%20books
I would advise these books:
http://www-2.cs.cmu.edu/~dst/LispBook/
http://www.gigamonkeys.com/book/
> Well, this isn't a discussion I have time for. I'm just
> sayin', if not for emacs, elisp would be gone... and it might be gone
> anyway in a generation or two. I'll leave it to those who know the
> language better than I to if/how to prevent that happening.
Outside of gnu emacs (and forks), indeed there are better lisps. I
prefer Common Lisp, but some kind of scheme is even considered to
replace emacs lisp.
But it would not change your problem, since these languages are all
lisps, they behave at taste mostly the same. Notably for fundamental
notions such as lists.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
[not found] ` <mailman.5.1298917525.1451.help-gnu-emacs@gnu.org>
2011-02-28 21:32 ` print out all members of a list, v.1.0 Tim X
2011-03-01 5:48 ` Pascal J. Bourguignon
@ 2011-03-01 6:02 ` rusi
2011-03-02 4:51 ` Barry Margolin
2 siblings, 1 reply; 30+ messages in thread
From: rusi @ 2011-03-01 6:02 UTC (permalink / raw)
To: help-gnu-emacs
On Feb 28, 11:25 pm, ken <geb...@mousecar.com> wrote:
> Ughhh. Finally, after reading many, many info pages and running a dozen
> or so google searches and reading four or five that many web pages over
> the past couple days, I found what I was after... mapconcat. Still then
> it took a bit of reading error messages and playing around with syntax,
> but it's working. All that for one line of code!
Learning a new language is often most frustrating in the simplest
aspects.
Use this list/group earlier next time!
>
> I've programmed in a lot of languages over the decades, but elisp
> definitely has the steepest learning curve... prolly cuz it's so
> hodge-podgey.
yes it is. emacs lisp became obsolete when scheme and common lisp came
out -- which is about 30 years ago. And its still the most commonly
used lisp. Go figure!
> Well, this isn't a discussion I have time for. I'm just
> sayin', if not for emacs, elisp would be gone... and it might be gone
> anyway in a generation or two. I'll leave it to those who know the
> language better than I to if/how to prevent that happening.
>
> On 02/28/2011 12:21 PM ken wrote:
>
> > On 02/28/2011 10:20 AM ken wrote:
> >> (car '("one" "two" "three"))
>
> >> prints out "one" ... the first of the list. How to print out all
> >> elements of the list (in order and with the double quotes around them?
> >> I'm actually looking just to substitute something for "car" and not
> >> write an entire function. Or is there no such thing?
>
> >> Thanks much.
>
> > I've been criticized for my elisp terminology-- and properly so--, so
> > let me rephrase:
>
> > (car '("one" "two" "three"))
>
> > returns a string consisting of the first element (?) of the list. Is
> > there an elisp function which either (1) returns one string for each
> > element of the list or (2) returns one string containing all elements of
> > the list?
>
> > E.g.:
>
> > (1) "one" "two" "three"
>
> > or
>
> > (2) "onetwothree"
>
> > preferably (1).
>
> > Thanks again.
>
> > P.S. It seems strange that elisp has so many ways to manipulate lists,
> > but doesn't seem to have this very simple functionality.
>
>
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-01 6:02 ` rusi
@ 2011-03-02 4:51 ` Barry Margolin
2011-03-02 5:33 ` rusi
2011-03-02 11:56 ` Pascal J. Bourguignon
0 siblings, 2 replies; 30+ messages in thread
From: Barry Margolin @ 2011-03-02 4:51 UTC (permalink / raw)
To: help-gnu-emacs
In article
<d00d6215-5ab4-499d-8e7b-07168ad8a371@o18g2000prh.googlegroups.com>,
rusi <rustompmody@gmail.com> wrote:
> yes it is. emacs lisp became obsolete when scheme and common lisp came
> out -- which is about 30 years ago.
How is that possible, since Emacs Lisp came out AFTER Scheme and Common
Lisp? CLtL was published in 1984, the same year Stallman started
writing GNU Emacs? And Scheme is older, since CL took a number of ideas
from it (most notably lexical scoping).
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-02 4:51 ` Barry Margolin
@ 2011-03-02 5:33 ` rusi
2011-03-02 11:56 ` Pascal J. Bourguignon
1 sibling, 0 replies; 30+ messages in thread
From: rusi @ 2011-03-02 5:33 UTC (permalink / raw)
To: help-gnu-emacs
On Mar 2, 9:51 am, Barry Margolin <bar...@alum.mit.edu> wrote:
> In article
> <d00d6215-5ab4-499d-8e7b-07168ad8a...@o18g2000prh.googlegroups.com>,
>
> rusi <rustompm...@gmail.com> wrote:
> > yes it is. emacs lisp became obsolete when scheme and common lisp came
> > out -- which is about 30 years ago.
>
> How is that possible, since Emacs Lisp came out AFTER Scheme and Common
> Lisp? CLtL was published in 1984, the same year Stallman started
> writing GNU Emacs? And Scheme is older, since CL took a number of ideas
> from it (most notably lexical scoping).
Ok I stand corrected technically.
I was speaking more generically -- elisp as a member of the
dynamically scoped 2-lisp family.
ie. to the family of {MAC,Franz,UCI}-lisps that preceded scheme and
CL.
[Personal note: I did my degree project in mid 80s writing a lisp
interpreter. The only reference I had was the UCI lisp manual. I
thought the scoping (I had implemented) was strange (static/dynamic
etc were no words I knew then). After I finished I got hold of the CL
manual
and then had the 'Aha: ' The goofup was not mine!]
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-02 4:51 ` Barry Margolin
2011-03-02 5:33 ` rusi
@ 2011-03-02 11:56 ` Pascal J. Bourguignon
2011-03-03 0:36 ` Barry Margolin
1 sibling, 1 reply; 30+ messages in thread
From: Pascal J. Bourguignon @ 2011-03-02 11:56 UTC (permalink / raw)
To: help-gnu-emacs
Barry Margolin <barmar@alum.mit.edu> writes:
> In article
> <d00d6215-5ab4-499d-8e7b-07168ad8a371@o18g2000prh.googlegroups.com>,
> rusi <rustompmody@gmail.com> wrote:
>
>> yes it is. emacs lisp became obsolete when scheme and common lisp came
>> out -- which is about 30 years ago.
>
> How is that possible, since Emacs Lisp came out AFTER Scheme and Common
> Lisp? CLtL was published in 1984, the same year Stallman started
> writing GNU Emacs? And Scheme is older, since CL took a number of ideas
> from it (most notably lexical scoping).
At the same time as CL.
The CL standard was completed in 1994. 1984 only marks the beginning
of the standardization effort.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-02 11:56 ` Pascal J. Bourguignon
@ 2011-03-03 0:36 ` Barry Margolin
2011-03-03 9:02 ` Pascal J. Bourguignon
0 siblings, 1 reply; 30+ messages in thread
From: Barry Margolin @ 2011-03-03 0:36 UTC (permalink / raw)
To: help-gnu-emacs
In article <87r5apwxad.fsf@kuiper.lan.informatimago.com>,
"Pascal J. Bourguignon" <pjb@informatimago.com> wrote:
> Barry Margolin <barmar@alum.mit.edu> writes:
>
> > In article
> > <d00d6215-5ab4-499d-8e7b-07168ad8a371@o18g2000prh.googlegroups.com>,
> > rusi <rustompmody@gmail.com> wrote:
> >
> >> yes it is. emacs lisp became obsolete when scheme and common lisp came
> >> out -- which is about 30 years ago.
> >
> > How is that possible, since Emacs Lisp came out AFTER Scheme and Common
> > Lisp? CLtL was published in 1984, the same year Stallman started
> > writing GNU Emacs? And Scheme is older, since CL took a number of ideas
> > from it (most notably lexical scoping).
>
> At the same time as CL.
> The CL standard was completed in 1994. 1984 only marks the beginning
> of the standardization effort.
So? CL predates the standardization effort. 1984 marks the END of
several years of work that produced the book "Common Lisp: the Language".
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-03 0:36 ` Barry Margolin
@ 2011-03-03 9:02 ` Pascal J. Bourguignon
2011-03-03 15:37 ` rusi
2011-03-04 2:34 ` Barry Margolin
0 siblings, 2 replies; 30+ messages in thread
From: Pascal J. Bourguignon @ 2011-03-03 9:02 UTC (permalink / raw)
To: help-gnu-emacs
Barry Margolin <barmar@alum.mit.edu> writes:
> In article <87r5apwxad.fsf@kuiper.lan.informatimago.com>,
> "Pascal J. Bourguignon" <pjb@informatimago.com> wrote:
>
>> Barry Margolin <barmar@alum.mit.edu> writes:
>>
>> > In article
>> > <d00d6215-5ab4-499d-8e7b-07168ad8a371@o18g2000prh.googlegroups.com>,
>> > rusi <rustompmody@gmail.com> wrote:
>> >
>> >> yes it is. emacs lisp became obsolete when scheme and common lisp came
>> >> out -- which is about 30 years ago.
>> >
>> > How is that possible, since Emacs Lisp came out AFTER Scheme and Common
>> > Lisp? CLtL was published in 1984, the same year Stallman started
>> > writing GNU Emacs? And Scheme is older, since CL took a number of ideas
>> > from it (most notably lexical scoping).
>>
>> At the same time as CL.
>> The CL standard was completed in 1994. 1984 only marks the beginning
>> of the standardization effort.
>
> So? CL predates the standardization effort. 1984 marks the END of
> several years of work that produced the book "Common Lisp: the Language".
Well, I understand reticence of RMS to use a language that's not even
standardized yet. Of course, I shall then wonder why he had to design
his own non-standardized language.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-03 9:02 ` Pascal J. Bourguignon
@ 2011-03-03 15:37 ` rusi
2011-03-03 16:00 ` Pascal J. Bourguignon
2011-03-04 2:34 ` Barry Margolin
1 sibling, 1 reply; 30+ messages in thread
From: rusi @ 2011-03-03 15:37 UTC (permalink / raw)
To: help-gnu-emacs
On Mar 3, 2:02 pm, "Pascal J. Bourguignon" <p...@informatimago.com>
wrote:
> Well, I understand reticence of RMS to use a language that's not even
> standardized yet. Of course, I shall then wonder why he had to design
> his own non-standardized language.
Reticence??
I guess you mean hesitation/reluctance or some such? If you are
actually saying 'reticence' that's a cute usage given how much rms is
participating in these discussions :-)
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-03 15:37 ` rusi
@ 2011-03-03 16:00 ` Pascal J. Bourguignon
0 siblings, 0 replies; 30+ messages in thread
From: Pascal J. Bourguignon @ 2011-03-03 16:00 UTC (permalink / raw)
To: help-gnu-emacs
rusi <rustompmody@gmail.com> writes:
> On Mar 3, 2:02 pm, "Pascal J. Bourguignon" <p...@informatimago.com>
> wrote:
>
>> Well, I understand reticence of RMS to use a language that's not even
>> standardized yet. Of course, I shall then wonder why he had to design
>> his own non-standardized language.
>
>
> Reticence??
> I guess you mean hesitation/reluctance or some such? If you are
> actually saying 'reticence' that's a cute usage given how much rms is
> participating in these discussions :-)
Well, I'm not a native, but
http://www.thefreedictionary.com/reticence
ret·i·cence (rt-sns)
n.
1. The state or quality of being reticent; reserve.
2. The state or quality of being reluctant; unwillingness.
3. An instance of being reticent.
I definitely meant the 2. definition.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-03 9:02 ` Pascal J. Bourguignon
2011-03-03 15:37 ` rusi
@ 2011-03-04 2:34 ` Barry Margolin
2011-03-04 4:09 ` Drew Adams
2011-03-04 10:39 ` Pascal J. Bourguignon
1 sibling, 2 replies; 30+ messages in thread
From: Barry Margolin @ 2011-03-04 2:34 UTC (permalink / raw)
To: help-gnu-emacs
In article <878vwwwp8d.fsf@kuiper.lan.informatimago.com>,
"Pascal J. Bourguignon" <pjb@informatimago.com> wrote:
> Barry Margolin <barmar@alum.mit.edu> writes:
>
> > In article <87r5apwxad.fsf@kuiper.lan.informatimago.com>,
> > "Pascal J. Bourguignon" <pjb@informatimago.com> wrote:
> >
> >> Barry Margolin <barmar@alum.mit.edu> writes:
> >>
> >> > In article
> >> > <d00d6215-5ab4-499d-8e7b-07168ad8a371@o18g2000prh.googlegroups.com>,
> >> > rusi <rustompmody@gmail.com> wrote:
> >> >
> >> >> yes it is. emacs lisp became obsolete when scheme and common lisp came
> >> >> out -- which is about 30 years ago.
> >> >
> >> > How is that possible, since Emacs Lisp came out AFTER Scheme and Common
> >> > Lisp? CLtL was published in 1984, the same year Stallman started
> >> > writing GNU Emacs? And Scheme is older, since CL took a number of ideas
> >> > from it (most notably lexical scoping).
> >>
> >> At the same time as CL.
> >> The CL standard was completed in 1994. 1984 only marks the beginning
> >> of the standardization effort.
> >
> > So? CL predates the standardization effort. 1984 marks the END of
> > several years of work that produced the book "Common Lisp: the Language".
>
> Well, I understand reticence of RMS to use a language that's not even
> standardized yet. Of course, I shall then wonder why he had to design
> his own non-standardized language.
Emacs Lisp is mostly a reimplementation of MockLisp, the dialect that
was used in Gosling Emacs, which was the original inspiration for GNU
Emacs. It's also very much like MACLISP, the dialect that RMS had been
using for over a decade.
So he didn't design his own language, he was basically sticking with
what he knew and liked.
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
^ permalink raw reply [flat|nested] 30+ messages in thread
* RE: print out all members of a list, v.1.0
2011-03-04 2:34 ` Barry Margolin
@ 2011-03-04 4:09 ` Drew Adams
2011-03-04 10:39 ` Pascal J. Bourguignon
1 sibling, 0 replies; 30+ messages in thread
From: Drew Adams @ 2011-03-04 4:09 UTC (permalink / raw)
To: 'Barry Margolin', help-gnu-emacs
> Emacs Lisp is mostly a reimplementation of MockLisp, the dialect that
> was used in Gosling Emacs, which was the original inspiration for GNU
> Emacs. It's also very much like MACLISP, the dialect that
> RMS had been using for over a decade.
>
> So he didn't design his own language, he was basically sticking with
> what he knew and liked.
Hm. Not to disagree too much, but on one point in particular: MockLisp was not
in any sense a dialect of Lisp - it was not Lisp at all. It only had some of
the appearance of Lisp (parenthesized expressions), none of the behavior.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-04 2:34 ` Barry Margolin
2011-03-04 4:09 ` Drew Adams
@ 2011-03-04 10:39 ` Pascal J. Bourguignon
2011-03-04 11:06 ` David Kastrup
2011-03-05 3:24 ` Barry Margolin
1 sibling, 2 replies; 30+ messages in thread
From: Pascal J. Bourguignon @ 2011-03-04 10:39 UTC (permalink / raw)
To: help-gnu-emacs
Barry Margolin <barmar@alum.mit.edu> writes:
> Emacs Lisp is mostly a reimplementation of MockLisp, the dialect that
> was used in Gosling Emacs, which was the original inspiration for GNU
> Emacs. It's also very much like MACLISP, the dialect that RMS had been
> using for over a decade.
>
> So he didn't design his own language, he was basically sticking with
> what he knew and liked.
MacLisp probably. CL is inspired a lot from MacLisp too. But I've
read that MockLisp was far from being a full lisp (as its name would
imply), and that it was probably the reason why RMS had to write a new
real lisp for his emacs.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-04 10:39 ` Pascal J. Bourguignon
@ 2011-03-04 11:06 ` David Kastrup
2011-03-05 3:24 ` Barry Margolin
1 sibling, 0 replies; 30+ messages in thread
From: David Kastrup @ 2011-03-04 11:06 UTC (permalink / raw)
To: help-gnu-emacs
"Pascal J. Bourguignon" <pjb@informatimago.com> writes:
> Barry Margolin <barmar@alum.mit.edu> writes:
>> Emacs Lisp is mostly a reimplementation of MockLisp, the dialect that
>> was used in Gosling Emacs, which was the original inspiration for GNU
>> Emacs. It's also very much like MACLISP, the dialect that RMS had
>> been using for over a decade.
>>
>> So he didn't design his own language, he was basically sticking with
>> what he knew and liked.
>
> MacLisp probably. CL is inspired a lot from MacLisp too. But I've
> read that MockLisp was far from being a full lisp (as its name would
> imply), and that it was probably the reason why RMS had to write a new
> real lisp for his emacs.
I suggest you google for a bit of history about Stallman and Gosling
Emacs. Not being able to use Gosling Emacs/MockLisp any more even
though many contributions to it were _intended_ to be made freely
available was actually the reason for Stallman to stop believing in
universal goodness and create the GPL.
--
David Kastrup
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: print out all members of a list, v.1.0
2011-03-04 10:39 ` Pascal J. Bourguignon
2011-03-04 11:06 ` David Kastrup
@ 2011-03-05 3:24 ` Barry Margolin
1 sibling, 0 replies; 30+ messages in thread
From: Barry Margolin @ 2011-03-05 3:24 UTC (permalink / raw)
To: help-gnu-emacs
In article <878vwvuq3o.fsf@kuiper.lan.informatimago.com>,
"Pascal J. Bourguignon" <pjb@informatimago.com> wrote:
> Barry Margolin <barmar@alum.mit.edu> writes:
> > Emacs Lisp is mostly a reimplementation of MockLisp, the dialect that
> > was used in Gosling Emacs, which was the original inspiration for GNU
> > Emacs. It's also very much like MACLISP, the dialect that RMS had been
> > using for over a decade.
> >
> > So he didn't design his own language, he was basically sticking with
> > what he knew and liked.
>
> MacLisp probably. CL is inspired a lot from MacLisp too. But I've
> read that MockLisp was far from being a full lisp (as its name would
> imply), and that it was probably the reason why RMS had to write a new
> real lisp for his emacs.
I think he may have taken much inspiration from Multics Maclisp and the
macros used in Multics Emacs. For example, I think that's where
save-excursion came from. It was also case-sensitive, unlike PDP-10
MACLISP.
I imagine this is the only good thing RMS would admit came out of
Multics. He wasn't a big fan of the OS because security was one of its
central features.
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
^ permalink raw reply [flat|nested] 30+ messages in thread