From: Mark Carroll <mtbc@bcs.org>
Subject: Re: Haskell, anyone?
Date: Sun, 15 Nov 2015 23:05:09 +0000
Date: 2015-11-15T23:05:09+00:00 [thread overview]
Message-ID: <87mvue50ey.fsf@ixod.org> (raw)
In-Reply-To: n2b23f$aom$1@speranza.aioe.org
On 15 Nov 2015, Nasser M. Abbasi wrote:
(snip)
> On Ada, One of the best features is the ability to define subtypes very
> easily. I have not seen any other language with this feature. (one has
> to make Class in other languages, and define all the operations each time).
>
> This is for me what makes Ada for me. One can define a type
> that matche the range of the physical quantity being modeled.
> This helps catch many errors.
>
> Can one do this in Haskell? Say define a new integer subtype that
> can only take values from only 1...20. And have the compiler
> and run time check for this?
One could do subrange types back with Modula-3 too! (Possibly also
earlier Pascal-like languages.) I /can't/ think off-hand how to do this
easily with Haskell (at least without unusual extensions) but I /think/
that Idris, that I'd mentioned as illuminating a possible way forward,
would probably make you work a bit harder for subtypes, in the theorem
proving for dependent types, but with the payback of allowing a rather
wider range of kinds of subtype constraint. Unfortunately the leading
edge of compiler-checked correctness still makes one sweat for that
final thumbs-up.
-- Mark
next prev parent reply other threads:[~2015-11-15 23:05 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-15 20:42 Haskell, anyone? mockturtle
2015-11-15 20:51 ` Paul Rubin
2015-11-15 20:53 ` Nasser M. Abbasi
2015-11-15 21:50 ` Mark Carroll
2015-11-15 22:11 ` mockturtle
2015-11-15 22:48 ` Nasser M. Abbasi
2015-11-15 23:05 ` Mark Carroll [this message]
2015-11-16 4:11 ` Paul Rubin
2015-11-16 5:17 ` Nasser M. Abbasi
2015-11-16 5:48 ` Paul Rubin
2015-11-16 5:59 ` Nasser M. Abbasi
2015-11-16 6:47 ` Paul Rubin
2015-11-16 8:45 ` Simon Wright
2015-11-16 14:38 ` Brian Drummond
2015-11-15 23:19 ` Jeffrey R. Carter
2015-11-16 9:36 ` J-P. Rosen
2015-11-16 18:14 ` Jeffrey R. Carter
2015-11-16 3:59 ` Paul Rubin
2015-11-16 8:33 ` Dmitry A. Kazakov
2015-11-16 9:33 ` mockturtle
2015-11-16 9:45 ` Paul Rubin
2015-11-16 10:25 ` Hadrien Grasland
2015-11-16 11:19 ` Simon Wright
2015-11-16 11:25 ` Hadrien Grasland
2015-11-16 13:59 ` G.B.
2015-11-16 20:24 ` Jeffrey R. Carter
2015-11-16 23:23 ` Paul Rubin
2015-11-17 8:26 ` Dmitry A. Kazakov
2015-11-17 9:10 ` Mark Carroll
2015-11-17 20:09 ` Dmitry A. Kazakov
2015-11-17 10:49 ` Hadrien Grasland
2015-11-17 12:01 ` G.B.
2015-11-17 16:43 ` Hadrien Grasland
2015-11-17 18:04 ` Paul Rubin
2015-11-17 21:42 ` Hadrien Grasland
2015-11-18 4:36 ` Paul Rubin
2015-11-18 8:48 ` Hadrien Grasland
2015-11-18 9:23 ` Paul Rubin
2015-11-18 10:44 ` Hadrien Grasland
2015-11-18 11:02 ` Dmitry A. Kazakov
2015-11-18 12:41 ` G.B.
2015-11-18 23:06 ` Randy Brukardt
2015-11-19 8:56 ` Hadrien Grasland
2015-11-19 9:19 ` Hadrien Grasland
2015-11-19 21:27 ` Randy Brukardt
2015-11-24 12:03 ` Jacob Sparre Andersen
2015-11-19 7:22 ` Paul Rubin
2015-11-19 9:39 ` Hadrien Grasland
2015-11-17 13:01 ` Thomas Løcke
2015-11-17 16:45 ` Hadrien Grasland
2015-11-18 0:11 ` Paul Rubin
2015-11-18 9:44 ` Hadrien Grasland
2015-12-06 12:59 ` David Thompson
2015-12-07 7:25 ` Hadrien Grasland
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox