Re: [NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-06 Thread Zhichu Chen
On Fri, Dec 5, 2008 at 8:05 AM, Arthur Reutenauer
[EMAIL PROTECTED] wrote:
 but it might make more sense to look into metatables (i assume that you
 own the programming in lua book which explains that)

 I don't have one :(, I'll take a good at it later.

  You really should look into the book, it has a whole chapter about
 object-oriented programming in Lua, and explains useful conventions.

Oh it's a long document. I almost took a day to finish it. I've got the main
idea now. Thanks.

I'm sorry, I got another question now. How to link two variables? Like if I
change one, the other would be changed as well. This may be a piece of cake
for you and please forgive my laziness.


Arthur
 ___
 If your question is of interest to others as well, please add an entry to the 
 Wiki!

 maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : https://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net
 ___




-- 
Best Regards
Chen


  Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
 No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
 tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
   | www.sinap.ac.cn

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-06 Thread Yue Wang
variables are only symbols in lua.
they are reference to values (a place in the memory).

On 12/5/08, Zhichu Chen [EMAIL PROTECTED] wrote:
 On Fri, Dec 5, 2008 at 8:05 AM, Arthur Reutenauer
 [EMAIL PROTECTED] wrote:
  but it might make more sense to look into metatables (i assume that you
  own the programming in lua book which explains that)
 
  I don't have one :(, I'll take a good at it later.
 
   You really should look into the book, it has a whole chapter about
  object-oriented programming in Lua, and explains useful conventions.

 Oh it's a long document. I almost took a day to finish it. I've got the main
 idea now. Thanks.

 I'm sorry, I got another question now. How to link two variables? Like if I
 change one, the other would be changed as well. This may be a piece of cake
 for you and please forgive my laziness.

 
 Arthur
  ___
  If your question is of interest to others as well, please add an entry to 
  the Wiki!
 
  maillist : ntg-context@ntg.nl / 
  http://www.ntg.nl/mailman/listinfo/ntg-context
  webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
  archive  : https://foundry.supelec.fr/projects/contextrev/
  wiki : http://contextgarden.net
  ___
 



 --
 Best Regards
 Chen
 

  Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
 No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
 tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
   | www.sinap.ac.cn
 
 ___
 If your question is of interest to others as well, please add an entry to the 
 Wiki!

 maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : https://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net
 ___

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-04 Thread Hans Hagen
Zhichu Chen wrote:
 Hi,
 
 I'm learning to use luatex these days, one day actually. It's very
 interesting. Although reference manuals are available, I still don't
 know how to implement my designation.
 
 The thing is, I know there's a self variable for object-oriented
 programming, like
 ==
 \startluacode
 testdata = { a = 0,
  b = 0,
  c = 0,
  plus = function (self)
 self.c = self.a + self.b
 end
}
 mytest = testdata
 mytest.a=10
 mytest.b=100
 mytest:plus()
 tex.print(mytest.c)
 \stopluacode
 ==
 OK, but what if I wanna do something more, like substract? I would
 like to use another object, like
 ==
 \startluacode
 testdata = { a = 0,
  b = 0,
  c = 0,
  calc = Calc
}
 Calc = { plus = function (self)
 self.c = self.a + self.b
 end,
  substract = function (self)
 self.c = self.a - self.b
 end
}
 mytest = testdata
 mytest.a=10
 mytest.b=100
 mytest.calc:plus()
 tex.print(mytest.c)
 \stopluacode
 ==
 Of course this won't work, for the self in Calc refers to mytest.calc
 rather than mytest. How to implement things like that?

Calc = { add = function (self)
 self.c = self.a + self.b
 end,
  substract = function (self)
 self.c = self.a - self.b
 end
}

testdata = { a = 0,
  b = 0,
  c = 0,
  calc = function(self,f) return Calc[f](self) end
}

mytest = testdata
mytest.a=10
mytest.b=100
Calc.add(testdata)
print(mytest.c)
testdata:calc(substract)
print(mytest.c)

but it might make more sense to look into metatables (i assume that you 
own the programming in lua book which explains that)

Hans


-
   Hans Hagen | PRAGMA ADE
   Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
  | www.pragma-pod.nl
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-04 Thread Zhichu Chen
On Thu, Dec 4, 2008 at 5:28 PM, Hans Hagen [EMAIL PROTECTED] wrote:
 Zhichu Chen wrote:
 Hi,

 I'm learning to use luatex these days, one day actually. It's very
 interesting. Although reference manuals are available, I still don't
 know how to implement my designation.

 The thing is, I know there's a self variable for object-oriented
 programming, like
 ==
 \startluacode
 testdata = { a = 0,
  b = 0,
  c = 0,
  plus = function (self)
 self.c = self.a + self.b
 end
}
 mytest = testdata
 mytest.a=10
 mytest.b=100
 mytest:plus()
 tex.print(mytest.c)
 \stopluacode
 ==
 OK, but what if I wanna do something more, like substract? I would
 like to use another object, like
 ==
 \startluacode
 testdata = { a = 0,
  b = 0,
  c = 0,
  calc = Calc
}
 Calc = { plus = function (self)
 self.c = self.a + self.b
 end,
  substract = function (self)
 self.c = self.a - self.b
 end
}
 mytest = testdata
 mytest.a=10
 mytest.b=100
 mytest.calc:plus()
 tex.print(mytest.c)
 \stopluacode
 ==
 Of course this won't work, for the self in Calc refers to mytest.calc
 rather than mytest. How to implement things like that?

 Calc = { add = function (self)
 self.c = self.a + self.b
 end,
  substract = function (self)
 self.c = self.a - self.b
 end
}

 testdata = { a = 0,
  b = 0,
  c = 0,
  calc = function(self,f) return Calc[f](self) end
}

 mytest = testdata
 mytest.a=10
 mytest.b=100
 Calc.add(testdata)
 print(mytest.c)
 testdata:calc(substract)
 print(mytest.c)
Thanks

 but it might make more sense to look into metatables (i assume that you
 own the programming in lua book which explains that)
I don't have one :(, I'll take a good at it later.

 Hans


 -
   Hans Hagen | PRAGMA ADE
   Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
  | www.pragma-pod.nl
 -
 ___
 If your question is of interest to others as well, please add an entry to the 
 Wiki!

 maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : https://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net
 ___




-- 
Best Regards
Chen


  Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
 No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
 tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
   | www.sinap.ac.cn

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-04 Thread Arthur Reutenauer
 but it might make more sense to look into metatables (i assume that you
 own the programming in lua book which explains that)

 I don't have one :(, I'll take a good at it later.

  You really should look into the book, it has a whole chapter about
object-oriented programming in Lua, and explains useful conventions.

Arthur
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


[NTG-context] How to define such a function in lua? Sorry I don't have a name on it.

2008-12-03 Thread Zhichu Chen
Hi,

I'm learning to use luatex these days, one day actually. It's very
interesting. Although reference manuals are available, I still don't
know how to implement my designation.

The thing is, I know there's a self variable for object-oriented
programming, like
==
\startluacode
testdata = { a = 0,
 b = 0,
 c = 0,
 plus = function (self)
self.c = self.a + self.b
end
   }
mytest = testdata
mytest.a=10
mytest.b=100
mytest:plus()
tex.print(mytest.c)
\stopluacode
==
OK, but what if I wanna do something more, like substract? I would
like to use another object, like
==
\startluacode
testdata = { a = 0,
 b = 0,
 c = 0,
 calc = Calc
   }
Calc = { plus = function (self)
self.c = self.a + self.b
end,
 substract = function (self)
self.c = self.a - self.b
end
   }
mytest = testdata
mytest.a=10
mytest.b=100
mytest.calc:plus()
tex.print(mytest.c)
\stopluacode
==
Of course this won't work, for the self in Calc refers to mytest.calc
rather than mytest. How to implement things like that?

Thanks in advance.

-- 
Best Regards
Chen


  Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
 No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
 tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
   | www.sinap.ac.cn

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___