#3631: Overload the Prelude iterate to support list input
---------------------------------+------------------------------------------
Reporter: shelbymoore3 | Owner:
Type: feature request | Status: closed
Priority: normal | Milestone:
Component: Prelude | Version: 6.10.4
Severity: normal | Resolution: wontfix
Keywords: | Difficulty: Unknown
Testcase: | Os: Unknown/Multiple
Architecture: Unknown/Multiple |
---------------------------------+------------------------------------------
Comment (by shelbymoore3):
Replying to [comment:11 [email protected]]:
> Replying to [comment:9 shelbymoore3]:
> > That is reasonable, except that small tweaks can be easily buried in a
mailing list.
>
> I agree that sometimes they get lost - but that can also be a sign of
lack of support within the community. If a proposed change cannot gather
an enthusiastic crowd who want it implemented, then the idea just isn't
worth the effort of changing all the consequentially-impacted software etc
to support it.
That is what I now call the Obama illogic. Here is a story about the
wisdom (mass delusion) of crowds from 4000 years ago:
http://goldwetrust.up-with.com/biblical-f3/god-s-governance-t129.htm#2313
Or perhaps you prefer the more scientific version:
http://esr.ibiblio.org/?p=984
>
> > Also it is well known that consensus is not the way to write the best
software. Small teams slaughter large monoliths.
>
> The Haskell community values consensus, especially on standard and far-
reaching components like the Prelude.
By you own (il)logic, you must cite a consensus on that before you
autonomously attempt such a proclamation. ;) How dare you try to cut
corners and be efficient (joke)!
...the socialist dog chases his tail...
I never proposed that my change be accepted without review of the
community. I was only proposing that I be able to post my vote/suggestion
efficiently (geez I really didn't want to diatribe you) and in an
organized database. I take it that efficiency is too much to ask, unless
you have tenure, then it is not.
I didn't run my software projects this way when I was the lead developer
or a key one interfacing with QA. I do not understand what is gained by
discouraging input, other than laziness to add an 'incomplete' tag. The
size of the database costs you nearly nothing. If you are saying the time
to read, consider and tag the input is too costly, I can argue you are
never going to stop that (especially as something becomes more
mainstream), unless you restrict access. In that case, you lose
informational input also. There is no free lunch in the free market.
Generally I think flattening the model is best (hierarchies do not scale
well, they are brittle and rigid forming), and be clever about efficiency.
Often a clever `RegEx` is enough to work wonders on productivity.
> > This idea is not ill-formed.
>
> Has anyone pointed out yet that your 'iterate' function is non-
terminating?
The standard Prelude function does not "terminate" either (is infinitely
recursive):
http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/GHC-
List.html#iterate
That is the whole point of the function! It is taking advantage of lazy
evaluation caching, so the infinite list is only recursed as far as is
needed by the usage the function. In my example use case, e.g. `fibs !!
index`.
> Each recursive call builds a larger data structure (or rather, a thunk
for it), but there is no base-case to the recursion, so no value is ever
returned to the caller. This is the kind of beginner's mistake that is
posted (and ironed out) every day on haskell-cafe@, or beginn...@. The
input of the community really can help you write better (working) code.
So you are saying the standard Prelude was writting by beginners? ;)
Seems in one week I am somewhat ahead of your understanding, or am I
somehow missing your point entirely?
> > Perhaps that is because type inference doesn't scale and should be
avoided entirely, except for local usage:
>
> You will find it hard to convince anyone in the Haskell community that
type inference is a bad idea. :-)
If adding one overload to standard library function can break massive
amounts of code, I do not need to convince anyone. The market will prove
it. Socialists do not understand the power of the market. They have to
re-learn the lessons of 4000 years ago, infinite times repeated (or maybe
not, if you believe in an end time).
> > It is not totally unreasonable, except it doesn't scale. You are
going to have adjust if Haskell is going to move out of the research and
into mainstream, then busy business people are going to come and make
quick inputs, and if you shut them out, then you are shooting yourself in
the foot.
>
> Letting any beginner who has studied Haskell for one week, modify the
Prelude that is used by every Haskell programmer everywhere, without
discussion and consensus, is what does not scale.
I did not modify the Prelude with this feature suggestion. I am only
suggesting (not demanding) this suggestion be marked incomplete instead of
"won't fix", and be entered into the database of things people can search
for in future when looking for something to work on or explore.
And so far, looks like this beginner has made a reasonable strong case ;)
Or at least not "ill formed".
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3631#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs