[GHC] #14187: Transpose hangs on infinite by finite lists
GHC
ghc-devs at haskell.org
Wed Sep 6 10:46:01 UTC 2017
#14187: Transpose hangs on infinite by finite lists
-------------------------------------+-------------------------------------
Reporter: utikeev | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Keywords: transpose | Operating System: Windows
Architecture: x86_64 | Type of failure: Runtime
(amd64) | performance bug
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I found out that this code
{{{#!hs
take 5 $ map (take 3) (transpose (repeat [0..1]))
}}}
isn't equivalent to this one
{{{#!hs
take 5 $ map (take 3) [[0,0..], [1,1..]]
}}}
The second piece of code gives expectable output of
{{{[[0,0,0],[1,1,1]]}}}, while first one just hangs with outpit
{{{[[0,0,0],[1,1,1],}}} also probably screwing up some descriptors after
interruption with Ctrl+C (as in 8.2.1, didn't have such problem in 8.0.2.
I attach the screenshot of my cmd after interruption and pressing Up and
Down buttons randomly for a few times. The history seems to be broken).
In my homework I had to make a function zipN, which is actually zipWith
but for more than two lists. The solution which dealt with stuck was to
write my own transpose and apply {{{takeWhile (not . null)}}} to the
remaining part of transposed matrix.
P.S.:
{{{#!hs
[[0,0..],[1,1..]] == transpose (repeat [0..1])
}}}
also hangs ghci.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14187>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list