default values in a record structure

Hello, Is there anyway when defining a dat type record struct to indicate default values for some of the fields? Regards, Vasili

On Tue, Apr 28, 2009 at 4:09 PM, Vasili I. Galchin
Hello,
Is there anyway when defining a dat type record struct to indicate default values for some of the
fields? The usual pattern is to use a default record, and specialize it: data Foo = Foo { bar :: Int, baz :: Int, quux :: Int } fooDefault = Foo { bar = 1, baz = 2, quux = 3 } newRecord = fooDefault { quux = 42 } If you only want some of the fields to be defaulted, you can make them undefined in the default record... unfortunately this won't be checked by the compiler. Luke

On Apr 29, 2009, at 12:18 AM, Luke Palmer wrote:
On Tue, Apr 28, 2009 at 4:09 PM, Vasili I. Galchin
wrote: Hello,
Is there anyway when defining a dat type record struct to indicate default values for some of the fields?
The usual pattern is to use a default record, and specialize it:
data Foo = Foo { bar :: Int, baz :: Int, quux :: Int }
fooDefault = Foo { bar = 1, baz = 2, quux = 3 }
newRecord = fooDefault { quux = 42 }
If you only want some of the fields to be defaulted, you can make them undefined in the default record... unfortunately this won't be checked by the compiler.
Luke
Additionally, you can choose to not export the constructor Foo and to only export your fooDefault quasi-constructor and your record selectors.

Is there anyway when defining a dat type record struct to indicate default values for some of the fields?
A bit dated, but still ... http://article.gmane.org/gmane.comp.lang.haskell.general/2078 J.W. -- View this message in context: http://www.nabble.com/default-values-in-a-record-structure-tp23287084p233133... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
participants (4)
-
j.waldmann
-
Luke Palmer
-
Sebastiaan Visser
-
Vasili I. Galchin