From: Tim <er...@58...> - 2013-07-01 14:21:18
|
Greetings, Lets say I have a .yaws page with two <erl> chunks: <erl module=identify> out(Arg) -> {html, "Cats"}. whatCat() -> "Burmese". </erl> <erl> out(Arg) -> {html, identify:whatCat()}. </erl> I expect the output to be: Cats Burmese but instead I just get an error, of which the relevant part seems to be: Stack: [{identify,whatCat,[],[]}, What am I doing wrong? What is the correct way to reference a function in a different chunk of the same .yaws page? Cheers. |
From: Claes W. <kl...@hy...> - 2013-07-01 14:47:19
|
On 7/1/13 4:21 PM, Tim wrote: > Greetings, > > Lets say I have a .yaws page with two <erl> chunks: > > <erl module=identify> > out(Arg) -> > {html, "Cats"}. > whatCat() -> > "Burmese". > </erl> > > <erl> > out(Arg) -> > {html, identify:whatCat()}. > </erl> > > I expect the output to be: > The whatCat/1 function will be part of the same module as the rest of the chunks of code that stem from the same .yaws page. The functions are not exported though so if you change to just <erl> out(Arg) -> {html, whatCat()}. </erl> It'll work /klacke |
From: Tim <er...@58...> - 2013-07-01 15:18:59
|
On 02/07/2013, at 12:17 AM, Claes Wikstrom <kl...@hy...> wrote: > The whatCat/1 function will be part of the same module as the rest > of the chunks of code that stem from the same .yaws page. > The functions are not exported though so if you change to > just > > <erl> > out(Arg) -> > {html, whatCat()}. > </erl> > > It'll work I get an error if I try to call it directly: Dynamic compile error: /Users/tim/test.yaws:42: function whatCat/0 undefined That error persists even if _neither_ erl chunk has a "module=…" attribute. |
From: Tim <er...@58...> - 2013-07-01 15:30:53
|
> I get an error if I try to call it directly: > > Dynamic compile error: /Users/tim/test.yaws:42: > function whatCat/0 undefined > > That error persists even if _neither_ erl chunk has a "module=…" attribute. So, specifically, this code: <erl> out(Arg) -> {html, "Cats"}. whatCat() -> "Burmese". </erl> <erl> out(Arg) -> {html, whatCat()}. </erl> generates this output: Cats Dynamic compile error: /Users/tim//cats.yaws:7: function whatCat/0 undefined generated file at: /Users/tim/.yaws/yaws/default/m40.erl |
From: Steve V. <vi...@ie...> - 2013-07-01 15:36:22
|
On Mon, Jul 1, 2013 at 11:30 AM, Tim <er...@58...> wrote: > I get an error if I try to call it directly: > > Dynamic compile error: /Users/tim/test.yaws:42: > function whatCat/0 undefined > > That error persists even if _neither_ erl chunk has a "module=…" attribute. > > > So, specifically, this code: > > <erl> > > out(Arg) -> {html, "Cats"}. > > whatCat() -> "Burmese". > > </erl> > > <erl> > > out(Arg) -> {html, whatCat()}. > > </erl> > > > generates this output: > > Cats > Dynamic compile error: /Users/tim//cats.yaws:7: > function whatCat/0 undefined > generated file at: /Users/tim/.yaws/yaws/default/m40.erl > You can export the whatCat/0 fun to other modules like this: <erl module=identify> -export([whatCat/0]). out(Arg) -> {html, "Cats"}. whatCat() -> "Burmese". </erl> <erl> out(Arg) -> {html, identify:whatCat()}. </erl> Works for me. --steve |
From: Tim <er...@58...> - 2013-07-01 15:45:13
|
> You can export the whatCat/0 fun to other modules like this: > > <erl module=identify> > > -export([whatCat/0]). > > out(Arg) -> > {html, "Cats"}. > whatCat() -> > "Burmese". > </erl> > > <erl> > out(Arg) -> > {html, identify:whatCat()}. > </erl> > > Works for me. Bingo! That's the ticket. I was working on the assumption that YAWS did an export_all behind the scenes, because on http://hyber.org/dynamic.yaws it has the example: <erl module=foobar> out(A) -> io:format('This is the foobar module',[]). func() -> i_am_exported_from_foobar. </erl> and there is no -export([func/0]) line. Is it worth updating that example? |