From 8638abef4686335ede35793b43f3e25930822544 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Mon, 7 Dec 2009 11:53:09 +0100 Subject: [PATCH] Add intermezzo on wild binders. --- Chapters/Normalization.tex | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Chapters/Normalization.tex b/Chapters/Normalization.tex index 4eb9c62..b058b63 100644 --- a/Chapters/Normalization.tex +++ b/Chapters/Normalization.tex @@ -1473,10 +1473,30 @@ \transexample{letflat}{Case normalisation}{from}{to} + \placeintermezzo{}{ + \defref{wild binders} + \startframedtext[width=7cm,background=box,frame=no] + \startalignment[center] + {\tfa Wild binders} + \stopalignment + \blank[medium] + In a functional expression, a \emph{wild binder} refers to any + binder that is never referenced. This means that even though it + will be bound to a particular value, that value is never used. + + The Haskell syntax offers the underscore as a wild binder that + cannot even be referenced (It can be seen as introducing a new, + anonymous, binder everytime it is used). + + In these transformations, the term wild binder will sometimes be + used to indicate that a binder must not be referenced. + \stopframedtext + } + \subsubsection{Case normalization} This transformation ensures that all case expressions get a form that is allowed by the intended normal form. This means they - will become one of: \refdef{intended normal form definition} + will become one of: \startitemize \item An extractor case with a single alternative that picks a field @@ -1519,7 +1539,6 @@ Cn wn,0 ... wn,m -> yn \stoptrans - \refdef{wild binder} Note that this transformation applies to case expressions with any scrutinee. If the scrutinee is a complex expression, this might result in duplication of work (hardware). An extra condition to -- 2.30.2