Send Beginners mailing list submissions to
[email protected]
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
[email protected]
You can reach the person managing the list at
[email protected]
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 <[email protected]>
To: haskell-cafe <[email protected]>, [email protected]
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 <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
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 <[email protected]>
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
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
--
Steven Leiva
305.528.6038
[email protected]
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
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 118, Issue 11
******************************************