This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C27352.E476AB10 Content-Type: text/plain Hi, Below is an example of Clean 1.3.2 code that frustrates me. fun is the first attempt. I understand (but do not appreciate) why it does not uniqueness-typecheck. fun1 and fun2 are attempts to cure this. I don't understand why these attempts do not work, and I would not know what would. Hope someone can help. Regards Erik Zuurbier module test import StdEnv myArr :: {Int} myArr = {1,2,3,4,5,6,7,8,9} Start = fun myArr 3 fun :: {Int} Int -> (Int,{Int}) fun arr i # e = if (i>0) arr.[i-2] undef = (e,{arr & [i] = 2*e}) fun1 :: {Int} Int -> (Int,{Int}) fun1 arr i #! e = if (i>0) arr.[i-2] undef = (e,{arr & [i] = 2*e}) fun2 :: {Int} Int -> (Int,{Int}) fun2 arr i #! x = arr.[i-2] #! e = if (i>0) x undef = (e,{arr & [i] = 2*e}) ------_=_NextPart_001_01C27352.E476AB10 Content-Type: text/html Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">Again: Strong root normal form Hi,
Below is an example of Clean 1.3.2 = code that frustrates me. fun is the first attempt. I understand (but do = not appreciate) why it does not uniqueness-typecheck. fun1 and fun2 are = attempts to cure this. I don't understand why these attempts do not = work, and I would not know what would. Hope someone can = help.
Regards Erik Zuurbier
module test
import StdEnvmyArr :: {Int}
myArr =3D {1,2,3,4,5,6,7,8,9}Start =3D fun myArr 3
fun :: {Int} Int -> = (Int,{Int})
fun arr i
# e =3D if (i>0) arr.[i-2] undef
=3D (e,{arr & [i] =3D 2*e})fun1 :: {Int} Int -> = (Int,{Int})
fun1 arr i
#! e =3D if (i>0) arr.[i-2] undef
=3D (e,{arr & [i] =3D 2*e})fun2 :: {Int} Int -> = (Int,{Int})
fun2 arr i
#! x =3D arr.[i-2]
#! e =3D if (i>0) x undef
=3D (e,{arr & [i] =3D 2*e})
------_=_NextPart_001_01C27352.E476AB10--