I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
KC
Reply | Threaded
Open this post in threaded view
|

I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

KC

I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

That is, to use myArray [5] and have a DSL convert it to standard Haskell syntax

--
--

Sent from an expensive device which will be obsolete in a few months! :D

Casey
   


_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
KC
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell-cafe] I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

KC

Then a tuple might work better as input to a function to index into an array

e.g. myArray  (5)

--
--

Sent from an expensive device which will be obsolete in a few months! :D

Casey
   

On Jun 1, 2015 1:21 PM, "Tikhon Jelvis" <[hidden email]> wrote:
You could make myArray a function that takes a list as an input. Of course, all your other array functions have to account for this too. A potential advantage is that this approach leaves the underlying array type abstract, so you could mix and match different data structure on the backend. (IntMap, Array, Vector… etc.)

A disadvantage is that this is non-standard usage which could be confusing to people and there's no way I know of to statically ensure the list passed in always had one element. That is, myArray [1, 2] would be legal and result in a runtime error.

I don't know of a way to do it while using a normal array type directly.

On Mon, Jun 1, 2015 at 1:17 PM, KC <[hidden email]> wrote:

I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

That is, to use myArray [5] and have a DSL convert it to standard Haskell syntax

--
--

Sent from an expensive device which will be obsolete in a few months! :D

Casey
   


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe



_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell-cafe] I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

Brandon Allbery
On Mon, Jun 1, 2015 at 4:29 PM, KC <[hidden email]> wrote:

Then a tuple might work better as input to a function to index into an array

e.g. myArray  (5)


Aside from 1-tuples not being a thing? (That's the same as (myArray 5).)

--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
KC
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell-cafe] I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

KC

I'm a part time tutor even though I don't look Elizabethan

I was trying to lower the learning curve for students

Maybe I'll point them to
http://dev.stephendiehl.com/hask/
And
Data.Vector

--
--

Sent from an expensive device which will be obsolete in a few months! :D

Casey
   

On Jun 1, 2015 1:35 PM, "Brandon Allbery" <[hidden email]> wrote:
On Mon, Jun 1, 2015 at 4:29 PM, KC <[hidden email]> wrote:

Then a tuple might work better as input to a function to index into an array

e.g. myArray  (5)


Aside from 1-tuples not being a thing? (That's the same as (myArray 5).)

--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
KC
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell-cafe] I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

KC

On Jun 1, 2015 5:52 PM, "Tikhon Jelvis" <[hidden email]> wrote:
If you teach them about how operators are normal functions in Haskell, using an operator to index into an array makes the indexing operation less magical—a big pedagogical boon, in my view. The fewer special cases in the language you're teaching, the better, and looking similar to other languages is not a good reason for a special case.

Especially since the similarity could be misleading!)

Good point (s)

--
--

Sent from an expensive device which will be obsolete in a few months! :D

Casey
   


_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: [Haskell-cafe] I think someone had a complicated program to use brackets for array indexing - is it possible to use a DSL for this?

Christopher Allen
In reply to this post by KC
Strongly agreed with ok and Tikhon. I've tried these weird pidgins and localized fabrications wrapped around Haskell before, it's only a stumbling block.

Haskell is simple, you don't have to lie - just encourage them not to draw false analogies.

On Mon, Jun 1, 2015 at 7:52 PM, Tikhon Jelvis <[hidden email]> wrote:
If you teach them about how operators are normal functions in Haskell, using an operator to index into an array makes the indexing operation less magical—a big pedagogical boon, in my view. The fewer special cases in the language you're teaching, the better, and looking similar to other languages is not a good reason for a special case.

Especially since the similarity could be misleading!)

On Mon, Jun 1, 2015 at 5:48 PM, <[hidden email]> wrote:
> I'm a part time tutor even though I don't look Elizabethan
>
> I was trying to lower the learning curve for students

Using square brackets for array indexing in Haskell
would be more a case of putting a stumbling block in
their way than lowering the learning curve.

Fortran uses A(I), not A[I], and has for the last fifty-some
years.  The official definition of Simula 67 uses A(I) as
well, despite its predecessor Algol 60 using a[i].  COBOL
uses A(I), and has done so nearly as long as Fortran.  PL/I
(yes, it still exists) uses A(I), not A[I].  BASIC uses
A(I), this is still so in Visual Basic.NET.  If memory
serves me correctly, MINITAB uses parentheses, not brackets.

Is a pattern beginning to emerge?

Lying to the students by implicitly telling them "all programming
languages use square brackets for array indexing" will be doing
them no favour.  Even lying about Haskell is no kindness.


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe



_______________________________________________
Beginners mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners