Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #40793

Re: Forth programming style...

From Paul Rubin <no.email@nospam.invalid>
Newsgroups comp.lang.forth
Subject Re: Forth programming style...
Date 2015-07-24 18:15 -0700
Organization A noiseless patient Spider
Message-ID <87twstqbpv.fsf@jester.gateway.sonic.net> (permalink)
References (5 earlier) <55357ad6-5a4b-4ef6-b46b-7d05f9c5b3cf@googlegroups.com> <80ebb1e3-e866-447b-94f5-1bd49481b09b@googlegroups.com> <moqanv$g2b$1@dont-email.me> <c2df7c0b-90ac-4354-99f6-981ec8abf600@googlegroups.com> <22264b92-31dd-408a-a9b9-37491958e810@googlegroups.com>

Show all headers | View raw


Mark Wills <markwills1970@gmail.com> writes:
> It's also utterly un-readble gibberish. I mean, lets face it, in the
> vast majority of languages, you can normally get an idea of what some
> piece of code is doing, even if you don't understand all of it.

I'd have written:

    (use-modules (srfi srfi-1))  ; guile
    (define (par . rs)
      (reduce (lambda (x y) (/ (* x y) (+ x y))) (inf) rs))

Maybe that's not so readable either, if you're not used to functional
programming idioms, but the idea is to start with one "infinity" (inf)
ohm resistor (i.e. open circuit), then add the additional resistors in
parallel with it one by one.  The Haskell equivalent to WJ's Scheme code
would be:

    par [x,y] = x*y / (x+y)
    par (x:xs) = p2 [x, p2 xs]

that is, you start with the formula for two resistors, and if there are
more than two, recursively take the first one and combine it with the
rest.  That code crashes if there are fewer than two resistors.  The
combinator-oriented version would be:

  par = foldl1 (\x y -> x*y / (x+y))

which means take the 2-resistor formula and fold it over the argument
list.

Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Forth programming style... Mux <Yvo.Zoer@gmail.com> - 2015-07-21 15:40 -0700
  Re: Forth programming style... Julian Fondren <ayrnieu@gmail.com> - 2015-07-21 17:28 -0700
    Re: Forth programming style... Julian Fondren <ayrnieu@gmail.com> - 2015-07-21 17:39 -0700
      Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-22 00:48 -0700
        Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-21 22:25 -1000
          Re: Forth programming style... onewingedshark@gmail.com - 2015-07-22 15:13 -0700
            Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 13:24 -1000
            Re: Forth programming style... stephen@mpeforth.com (Stephen Pelc) - 2015-07-23 08:28 +0000
        Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 02:38 -0700
          Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-22 03:14 -0700
            Re: Forth programming style... humptydumpty <ouatubi@gmail.com> - 2015-07-22 03:45 -0700
              Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 08:37 -1000
              Re: Forth programming style... Paul Rubin <no.email@nospam.invalid> - 2015-07-22 12:51 -0700
                Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 10:14 -1000
                Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-23 06:23 +0000
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 16:59 -0700
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 20:18 -0700
                Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-07-28 21:06 +1000
                Re: Forth programming style... "Alex McDonald" <blog@rivadpm.com> - 2015-07-28 12:38 +0100
            Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-07-23 00:02 +1000
            Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-22 21:21 -0700
              Re: Forth programming style... "WJ" <w_a_x_man@yahoo.com> - 2015-07-23 09:05 +0000
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 16:47 -0700
                Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-24 01:24 -0700
                Re: Forth programming style... franck.bensusan@gmail.com - 2015-07-24 03:48 -0700
                Re: Forth programming style... Paul Rubin <no.email@nospam.invalid> - 2015-07-24 18:15 -0700
                Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-08-01 13:21 +1000
            Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-22 21:48 -0700
            Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 22:28 -0700
              Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 00:43 +0200
            Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 00:22 +0200
              Re: Forth programming style... hughaguilar96@gmail.com - 2015-08-01 16:41 -0700
                Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-01 22:01 -0400
              Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-02 05:50 +0000
                Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 16:33 +0200
            Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-01 22:04 -0400
              Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-08-02 08:54 -0500
                Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-03 04:51 -0400
                Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-08-03 17:36 -0500
        Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-22 10:16 +0000
      Re: Forth programming style... mhx@iae.nl - 2015-07-22 10:02 -0700
    Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-22 10:09 +0000
  Re: Forth programming style... Syd Rumpo <usenet@nononono.co.uk> - 2015-07-22 12:16 +0100
    Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 07:59 -0700
  Re: Forth programming style... glidedog@gmail.com - 2015-07-23 04:24 -0700
  Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-23 19:32 -0700
    Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 21:33 -0700
      Re: Forth programming style... borota@gmail.com - 2015-07-23 22:09 -0700
        Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 22:57 -0700
        Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-24 09:26 -0700
      Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-24 09:26 -0700

csiph-web