comp.lang.ada
 help / color / mirror / Atom feed
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


  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