-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 8/19/10 18:53 , Tom Murphy wrote:
I can see how I might be able to "hack" my way into accessing the "width" argument with infix functions, but there's no way at all that I can see to access the height. This seems arbitrary to me: my volumeFunction doesn't need them in the order they're given. Is there a way around this? Could I somehow combine three smaller functions?
volumeGivenLength, volumeGivenWeight, volumeGivenHeight: Int -> (Int -> Int - -> Int) - -- note that the above signature is the same as Int -> Int -> Int -> Int volumeGivenLength = volumeFunction -- function taking w, h volumeGivenWidth = flip volumeFunction -- function taking l, h volumeGivenHeight = flip (flip . volumeFunction) -- function taking l, w You can in general achieve any desired permutation of parameters, at the expense of your sanity: <allbery_b> @pl \h -> \a b c d e f g -> foo a b c d e f g h <lambdabot> flip (flip . ((flip . ((flip . ((flip . ((flip . (flip .)) .)) .)) .)) .) . foo - -- brandon s. allbery [linux,solaris,freebsd,perl] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkxturQACgkQIn7hlCsL25U/VACeKuMkrF9FkHnFmwPOGg8jEnCR LsAAoKp7KX6e2CIuSPa0sORbtst3bXt+ =mNM2 -----END PGP SIGNATURE-----