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.  Call for Participation: Summer School on Advanced Functional
      Programming (Alejandro Serrano Mena)
   2. Re:  Efficient Binary Multiplication (Steven Leiva)


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

Message: 1
Date: Mon, 16 Apr 2018 15:26:20 +0200
From: Alejandro Serrano Mena <trup...@gmail.com>
To: haskell-cafe <haskell-c...@haskell.org>, beginners@haskell.org
Subject: [Haskell-beginners] Call for Participation: Summer School on
        Advanced Functional Programming
Message-ID:
        <cahnfxotm7v5tdefr7c53wxdh+9fzro5saxh9fbudjo8gnn3...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

# Call for Participation

 SUMMER SCHOOL ON ADVANCED FUNCTIONAL PROGRAMMING

 Utrecht, the Netherlands, 27-31 August 2018

 http://www.afp.school

## ABOUT

The Advanced Functional Programming summer school has been running for
more than ten years. We aim to educate aspiring Haskell programmers
beyond the basic material covered by many textbooks.

The lectures will cover several more advanced topics regarding the
theory and practice of Haskell programming, including topics such as:

  * lambda calculus;
  * monads and monad transformers;
  * lazy evaluation;
  * generalized algebraic data types;
  * type families and type-level programming;
  * concurrency and parallelism.

The summer school consists of a mix of lectures, labs, and a busy
social program.

## LECTURERS

Utrecht staff:
  * Johan Jeuring
  * Alejandro Serrano Mena
  * Doaitse Swierstra
  * Wouter Swierstra

Guest lectures:
  * Manuel Chakravarty
  * Koen Claessen
  * Gabriele Keller


## PREREQUISITES

We expect students to have a basic familiarity with Haskell
already. You should be able to write recursive functions over
algebraic data types, such as lists and trees. There is a great deal
of material readily available that covers this material. If you’ve
already started learning Haskell and are looking to take your
functional programming skills to the next level, this is the course
for you.

## DATES

Registration deadline: 1 August, 2017
School:                27-31 August

## COSTS

€1700 - Housing and registration
€1500 - Registration only

We offer a €1000 discount for students and staff members affiliated with
a university.

## SCHOLARSHIPS

If you’re struggling to finance your trip to Utrecht, please let us
know. We have a limited number of scholarships or discounts available
for students that would not be able to attend otherwise, especially
for women and under represented minorities.

## FURTHER INFORMATION

Further information, including instructions on how to register, is
available on our website:

                        http://www.afp.school
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20180416/b6a88a6f/attachment-0001.html>

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

Message: 2
Date: Mon, 16 Apr 2018 20:48:40 -0400
From: Steven Leiva <leiva.ste...@gmail.com>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] Efficient Binary Multiplication
Message-ID:
        <CA+=woS7=h4mc4bj-r6b51z_s37xwpndjedrzkdd9+uyzqxa...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Interesting question.

So there is a concept in computer science called *fusion*.

My understanding (I don't have a CS degree) is that when data is subject to
fusion, we don't create the intermediary lists as you are talking about.
This is why, in Haskell, we have the *ByteString* and *Text* datatypes.
Unlike *String*, they (ByteString / Text) are subject to fusion. *Text* is
useful when we are dealing with unicode data, while *ByteString* is the
correct tool when we are dealing with binary data.

All of this is to say that you should look at the *ByteString* data type.
(Take a look at this description, for example:
https://hackage.haskell.org/package/bytestring-0.10.8.2/docs/Data-ByteString.html#t:ByteString).


The only potential problem I see is that *ByteString* internally uses
*Word8*, and since *Word8* is *unsigned*, negatives are problematic. (Now
that I think about it, how the heck do you represent negative numbers in
binary?).

I hope this is useful.

On Sat, Apr 14, 2018 at 4:28 PM, Quentin Liu <quentin.liu.0...@gmail.com>
wrote:

> Hi all,
>
> Suppose I want to multiply two binary numbers whose representation uses
> lists (e.g. 14 is represented as [1, 1, 1, 0]). Is there any efficient way
> to do binary multiplication? The way I could come up with involves a lot of
> intermediate lists that will be discarded eventually and is extremely
> inefficient. I know one fast algorithm that uses Array but would it be
> possible to do the multiplication with only lists?
>
> Regards,
> Qingbo Liu
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>


-- 
Steven Leiva
305.528.6038
leiva.ste...@gmail.com
http://www.linkedin.com/in/stevenleiva
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20180416/79305639/attachment-0001.html>

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

Subject: Digest Footer

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


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

End of Beginners Digest, Vol 118, Issue 11
******************************************

Reply via email to