If you just want to pass a value via call-by-reference, you can do fun{a:vt@ype} foo(x: a): ... = let var x = x // now the name 'x' refers to a variable, which is a form of left-value // that can be passed via call-by-reference ... ...
On Mon, Sep 3, 2018 at 10:09 PM Hongwei Xi <gmh...@gmail.com> wrote: > What is aptr(l)? > > Here is some code that may be helpful: > > extern > fun > {a:vt0p} > ptr_alloc((*void*)) > :<> [l:agz] (a? @ l, mfree_gc_v(l) | ptr(l)) > // end of [ptr_alloc] > > extern > fn > {a:vt@ype} > as_view(a): > [l:addr | l > null] > (a @ l, mfree_gc_v(l) | ptr(l)) > > implement > {a} > as_view(x) = let > val > (pf,fpf|p) = > ptr_alloc<a>() > in > !p := x; (pf, fpf | p) > end > > > On Mon, Sep 3, 2018 at 9:15 PM Vanessa McHale <vanessa.mch...@iohk.io> > wrote: > >> Is there any way to implement >> >> extern >> fn {a:vt@ype} as_view (a) : [ l : addr | l > null ] (a @ l | aptr(l)) >> >> extern >> fn {a:vt@ype} as_value {l:addr} ((a @ l | aptr(l))) : a >> >> ? >> >> I've tried using view@ and addr@ but it seems they're for stack >> allocations. I suppose I could write my own view in place of using a @ >> l, but I don't see any way around addr@. >> >> 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 ats-lang-users+unsubscr...@googlegroups.com. >> To post to this group, send email to ats-lang-users@googlegroups.com. >> 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/af2fe422-c973-2353-7d8d-b6719a5cdc1c%40iohk.io >> . >> > -- 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 ats-lang-users+unsubscr...@googlegroups.com. To post to this group, send email to ats-lang-users@googlegroups.com. 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/CAPPSPLqVGBkU5FhAjdNzhGk7J68gbE%3DMJ1iZC-hQvEzh6saQ8A%40mail.gmail.com.