Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  The (x:xs) in function parameter is a tuple? (Max Voit)
   2. Re:  general observation about programming (Dudley Brooks)
   3.  Folders and sub-folders (Mike Houghton)
   4. Re:  Folders and sub-folders (Imants Cekusins)
   5. Re:  general observation about programming (Jeffrey Brown)


----------------------------------------------------------------------

Message: 1
Date: Thu, 25 Feb 2016 16:14:05 +0100
From: Max Voit <max.voit+m...@with-eyes.net>
To: beginners@haskell.org
Subject: Re: [Haskell-beginners] The (x:xs) in function parameter is a
        tuple?
Message-ID: <20160225161405.2a40a...@veeloqu.lan>
Content-Type: text/plain; charset=US-ASCII

On Thu, 25 Feb 2016 07:49:56 +0800
Nan Xiao <xiaonan830...@gmail.com> wrote:

> Rein referred "A tuple can have any number of elements", while Graham
> referred "There's no "one-ple", or 1-tuple, in Haskell.". So which one
> is right? The tuple at least contains 2 elements?

There is no one-tuple; however, there's a zero-tuple. Also no arbitrary
number of tuple elements allowed, due to definition (we're at 61 for
some reason). Refer to

http://hackage.haskell.org/package/ghc-prim-0.4.0.0/docs/GHC-Tuple.html

best, Max


------------------------------

Message: 2
Date: Thu, 25 Feb 2016 08:17:45 -0800
From: Dudley Brooks <dbro...@runforyourlife.org>
To: beginners@haskell.org
Subject: Re: [Haskell-beginners] general observation about programming
Message-ID: <56cf2929.10...@runforyourlife.org>
Content-Type: text/plain; charset="windows-1252"; Format="flowed"

Ages and ages ago I saw this advice about programming:

Q:  "What's the best language for a programmer to know?"

A:  "English" (or whatever your native language is)

-- Dudley

On 2/24/16 4:03 PM, Dennis Raddle wrote:

> This is more about programming in general than Haskell, although 
> Haskellers probably know it well.
>
> I don't claim to have expert knowledge on this, but I'm gradually 
> getting better at it.
>
> When I set out to write a program, or refactor a program, or modify a 
> program, it helps to set out my thinking in a clear way. And how I 
> make it clear is to document my thoughts.
>
> An outline is one good way to organize thoughts and is probably my 
> main tool. But good English prose is also helpful.
>
> The key factor is "editing." In what sense do I mean that? Good 
> writers do it, and the Haskell documentation does it. I mean (1) 
> brevity and (2) good flow. To achieve brevity, you must think about 
> the essence of each statement and trim away the unnecessary stuff. 
> Good flow refers to how the document builds up and modifies your 
> concepts as you read it. A document can actually mirror an effective 
> learning process, or influence and change your process.
>
> I work with my documentation, making several editing passes. By the 
> time I'm done, I am in a great position to write a concise and 
> flexible program.
>
> It's interesting that not only is Haskell a concise language, but the 
> Haskell library documentation is concise. Contrast that with the 
> Python documentation which often wanders about into areas that are 
> irrelevant--it could easily be cut into one third its present size.
>
> Mike
>
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20160225/f9d82223/attachment-0001.html>

------------------------------

Message: 3
Date: Thu, 25 Feb 2016 18:41:20 +0000
From: Mike Houghton <mike_k_hough...@yahoo.co.uk>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: [Haskell-beginners] Folders and sub-folders
Message-ID: <95c6683e-a31f-4eac-8c7e-73fdb1f94...@yahoo.co.uk>
Content-Type: text/plain; charset="utf-8"

Hi,

I?m trying to build up a list of all folders (including subfolders) from a 
given root folder.

So I have

folders :: FilePath -> IO [FilePath]
folders fp  = do 
    all <- getDirectoryContents fp
   filterM doesDirectoryExist $ map (fp </>) all
  
and this just gets the immediate folders within the given folder. 

I?m stuck on how to recursively call folders and build up the IO [FilePath]


folders :: FilePath -> IO [FilePath]
folders fp  = do
    all <- getDirectoryContents fp
    -- z :: IO  [FilePath]
    let z = filterM doesDirectoryExist $ map (fp </>) all
    ? z? :: [FilePath]
    z' <- z
    ? ?? what should happen here?
    z : (map folders z?)    

   
   Couldn't match expected type ?[FilePath]?
                with actual type ?IO [FilePath]?
    In the first argument of ?(:)?, namely ?z?
    In a stmt of a 'do' block: z : (map folders z')
etc... 
  

Thanks

Mike


-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20160225/5d9c88d2/attachment-0001.html>

------------------------------

Message: 4
Date: Thu, 25 Feb 2016 20:07:37 +0100
From: Imants Cekusins <ima...@gmail.com>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] Folders and sub-folders
Message-ID:
        <CAP1qinaB_Si=phqnyznqharvosr1k_rgesuf+c2etzebovj...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Hello Mike,

below code find all files recursively from a starting point. It works.

You'd need to tweak it to find folders instead.


import System.Directory
import Data.List


findAllFiles::FilePath -> IO [FilePath]
findAllFiles base0 = gd1 base0
        >>= \list1 -> concatMap' recurse3 list1
     where gd1 d1 = filter f2 <$> (getDirectoryContents d1)
           f2 "." = False
           f2 ".." = False
           f2 _ = True
           recurse3 md3 = doesDirectoryExist md3full
                      >>= \isDir3 ->
                        if isDir3 then findAllFiles md3full
                        else pure [md3full]
                    where md3full = base0 ++ "/" ++ md3



concatMap':: (a -> IO [b]) -> [a] -> IO [b]
concatMap' m0 list0 = sequence (m0 <$> list0)
        >>= \list2 -> pure $ concat list2


------------------------------

Message: 5
Date: Thu, 25 Feb 2016 11:19:24 -0800
From: Jeffrey Brown <jeffbrown....@gmail.com>
To: dbro...@runforyourlife.org,  The Haskell-Beginners Mailing List -
        Discussion of primarily beginner-level topics related to Haskell
        <beginners@haskell.org>
Subject: Re: [Haskell-beginners] general observation about programming
Message-ID:
        <CAEc4Ma2DrT0=zMj0wCJPXrZLRJyVpRksexO=ig9krujvqwg...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Something I like about functional programming is how it interfaces with
natural language. Haskell, somehow to a greater extent than other
languages, encourages me to divide functions into one or two-liners. Each
has a type signature that means something in English. Further, each gives
you the opportunity to choose a good name for the function and its
arguments. After doing those things, the function is much easier to write,
and much easier to read -- so much so that often you don't have to read the
function body at all, just the type signature, function name and argument
names.

On Thu, Feb 25, 2016 at 8:17 AM, Dudley Brooks <dbro...@runforyourlife.org>
wrote:

> Ages and ages ago I saw this advice about programming:
>
> Q:  "What's the best language for a programmer to know?"
>
> A:  "English" (or whatever your native language is)
>
> -- Dudley
>
>
> On 2/24/16 4:03 PM, Dennis Raddle wrote:
>
> This is more about programming in general than Haskell, although
> Haskellers probably know it well.
>
> I don't claim to have expert knowledge on this, but I'm gradually getting
> better at it.
>
> When I set out to write a program, or refactor a program, or modify a
> program, it helps to set out my thinking in a clear way. And how I make it
> clear is to document my thoughts.
>
> An outline is one good way to organize thoughts and is probably my main
> tool. But good English prose is also helpful.
>
> The key factor is "editing." In what sense do I mean that? Good writers do
> it, and the Haskell documentation does it. I mean (1) brevity and (2) good
> flow. To achieve brevity, you must think about the essence of each
> statement and trim away the unnecessary stuff. Good flow refers to how the
> document builds up and modifies your concepts as you read it. A document
> can actually mirror an effective learning process, or influence and change
> your process.
>
> I work with my documentation, making several editing passes. By the time
> I'm done, I am in a great position to write a concise and flexible program.
>
> It's interesting that not only is Haskell a concise language, but the
> Haskell library documentation is concise. Contrast that with the Python
> documentation which often wanders about into areas that are irrelevant--it
> could easily be cut into one third its present size.
>
> Mike
>
>
>
>
> _______________________________________________
> Beginners mailing 
> listBeginners@haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>


-- 
Jeffrey Benjamin Brown
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20160225/8a114450/attachment.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


------------------------------

End of Beginners Digest, Vol 92, Issue 32
*****************************************

Reply via email to