[racket] Constructors for sequences
On Sun, Apr 29, 2012 at 6:47 PM, Ryan Culpepper <ryan at cs.utah.edu> wrote:
> On 04/29/2012 04:33 PM, Matthias Felleisen wrote:
>>
>>
>> On Apr 29, 2012, at 6:29 PM, Asumu Takikawa wrote:
>>
>>> On 2012-04-29 12:43:48 -0400, Matthias Felleisen wrote:
>>>>
>>>> What you're really saying is that sequence-map uses the wrong kind of
>>>> type. Specifically, it should be polymorphic in the sequence constructor
>>>> instead of mapping everything to the top of the class hierarchy (sequence).
>>>
>>>
>>> I don't think this is just a type issue. The sequence that is returned
>>> by `sequence-map` is lazy, even if the original sequence was not. That's
>>> why you can't get the original type.
>>>
>>> Cheers,
>>> Asumu
>>
>>
>>
>> Why is it lazy?
>>
>> Can we add a strict one that is polymorphic (I apologize to the
>> defenders of proper type terminology here for the applying this word
>> to a dynamic aspect of Racket programs) in the sequence type-tag?
>
>
> Another problem is that not all sequence types are polymorphic. For example,
> strings are sequences, but strings can contain only characters. So what
> would
>
> (sequence-map char->integer "abc")
>
> return? Custom sequence types can add arbitrary additional constraints.
I believe that the Scala folks have handled this too. I really
recommend looking a what they've done.
--
sam th
samth at ccs.neu.edu