Can you share some of those lessons?

On Sunday, December 10, 2017 at 3:34:54 PM UTC-6, gmhwxi wrote:
>
> Right, it is just a convention.
>
> Templates are mostly an experimental feature in ATS.
> I find them to be extremely useful, though. There are a lot
> of learned lessons on templates that can be readily put into
> the next version of ATS, if there is ever going to be one :)
>
>
> On Sun, Dec 10, 2017 at 3:40 PM, aditya siram <[email protected] 
> <javascript:>> wrote:
>
>> Oh, cool, thanks! 
>>
>> Another thing I just noticed that was a little confusion was that the 
>> '$fopr' and '$cont' naming used in the source is just convention, I can 
>> change it to anything and still seem to get the same results. Not saying 
>> it's a problem, just didn't know.
>>
>>
>> On Sunday, December 10, 2017 at 2:19:27 PM UTC-6, gmhwxi wrote:
>>>
>>> It works.
>>>
>>> You need '{}' and '<>'
>>>
>>> extern fun{} list_map(...): ...
>>>
>>> implement list_map<>(...) = ...
>>>
>>> On Sun, Dec 10, 2017 at 3:12 PM, aditya siram <[email protected]> 
>>> wrote:
>>>
>>>> Hi,
>>>> I was following along with the templates as functors part of the 
>>>> tutorial (
>>>> http://ats-lang.sourceforge.net/DOCUMENT/INT2PROGINATS/HTML/INT2PROGINATS-BOOK-onechunk.html#templates-as-a-special-form-of-functors)
>>>>  
>>>> and the provided example works fine, but if I removed all the template 
>>>> arguments and specialized the function arguments to 'int' and change 
>>>> 'list_map_fun' to always increment the int:
>>>> extern fun list_map{n:nat} (xs: list(int, n)): list_vt(int, n)
>>>> extern fun list_map$fopr(x: int): int
>>>> implement list_map (xs) =
>>>>   let
>>>>     fun aux{n:nat}
>>>>          (xs: list(int, n)): list_vt(int, n) =
>>>>       (
>>>>         case+ xs of
>>>>         | list_nil() => list_vt_nil()
>>>>         | list_cons(x, xs) => list_vt_cons(list_map$fopr(x), aux(xs))
>>>>       )
>>>> in
>>>>   aux(xs)
>>>> end
>>>> extern fun list_map_fun{n:nat} (xs: list(int, n)): list_vt(int, n)
>>>> implement list_map_fun(xs) =
>>>> let
>>>>   implement list_map$fopr(x) = x + 1
>>>> in
>>>>   list_map (xs)
>>>> end
>>>>
>>>> Now I get following error on the 'implement list_map$fopr(x) = x + 1' 
>>>> line:
>>>> ...: the implementation should be at the top-level but it is not.Enter 
>>>> code here...
>>>>
>>>> Does this approach not work when templates have no polymorphic 
>>>> arguments?
>>>> Thanks!
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "ats-lang-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at https://groups.google.com/group/ats-lang-users.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/ats-lang-users/c9cdbd1c-3532-4512-afcf-2acf040cccba%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/ats-lang-users/c9cdbd1c-3532-4512-afcf-2acf040cccba%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "ats-lang-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/ats-lang-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ats-lang-users/d730fe08-7469-4349-8809-fec1a9826f91%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ats-lang-users/d730fe08-7469-4349-8809-fec1a9826f91%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ats-lang-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/ats-lang-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/c7885759-c97b-482e-a9a8-313152cc1e6b%40googlegroups.com.

Reply via email to