[Tutor] Getting a function name from within itself

Andrew Wilkins toodles@yifan.net
Mon, 11 Jun 2001 18:42:36 +0800


This is a multi-part message in MIME format.

------=_NextPart_000_0002_01C0F2A6.48A15740
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: base64

DQogICAgICAgICAgSSBhbSBwb3N0aW5nIGEgcXVlc3Rpb24gd2hpY2ggaXMgbm90IHNwZWNpZmlj
IHRvIHB5dGhvbi4gDQogICAgICAgICAgSXMgdGhlcmUgYSB3YXkgdG8gZ2V0IHRoZSBuYW1lIG9m
IGEgZnVuY3Rpb24gZnJvbSB3aXRoaW4gaXRzZWxmIGF0IHJ1bnRpbWUgPyBTdXBwb3NlIHRoYXQg
aSBoYXZlIGEgZnVuY3Rpb24gZjEuIEF0IHRoZSBydW4gdGltZSB3aGVuIGl0IGVuY291bnRlcnMg
c29tZSBjb25kaXRpb24gKCBlcnJvcnMgb3Igc29tZSBjb25kaXRpb24gd2hpY2ggaSB3YW50IHRv
IGxldCB0aGUgdXNlciBrbm93IGJ5IHByaW50aW5nKSwgSSB3YW50IHRvIHNheSB0aGF0IHRoaXMg
d2FybmluZyBvcmlnaW5hdGVkIGZyb20gdGhpcyBmdW5jdGlvbiBmMSwgd2l0aG91dCBhY3R1YWxs
eSBoYXJkIGNvZGluZyB0aGF0IG5hbWUgaW4gdGhlIHByaW50IHN0YXRlbWVudC4NCg0KICBkZWYg
ZjEoc2VsZik6DQogICAgICAtLS0gZG8gc29tZXRoaW5nIC0tDQogICAgICBQcmludCAiV2Fybmlu
ZyAuLi4uLi4iLCBmdW5jdGlvbl9uYW1lDQoNCiAgQ2FuIGkgZ2V0IHRoZSBmdW5jdGlvbiBuYW1l
IGZyb20gZXhlY3V0aW9uIGVudmlyb25tZW50IG9yIHNvbWV0aGluZyA/ICANCg0KICBUaGFua3Ms
DQogIFByYXZlZW4uDQoNCiAgV2VsbCBJIGh1cnQgbXkgYnJhaW4gdGhpbmtpbmcgYWJvdXQgdGhp
cyBvbmUsIGJ1dCBJJ2xsIHJlcGx5IG5ldmVydGhlbGVzcy4gVGhlIG1vc3QgdmlhYmxlIHNvbHV0
aW9uIEkgY2FtZSB1cCB3aXRoIHdhc24ndCB2ZXJ5IHZpYWJsZToNCg0KICBkZWYgZjEoZnVuYz1m
MSk6DQogICBwcmludCBmdW5jLmZ1bmNfbmFtZQ0KDQogIFVzZXItZGVmaW5lZC1mdW5jdGlvbnMn
IG5hbWVzcGFjZSBpcyB0aGF0IG9mIHRoZSBjYWxsaW5nIGJsb2NrLCBnaXZlbiBieSBnbG9iYWwo
KS4gVGhlIGZ1bmN0aW9uIGlzIGluIHRoZXJlIHNvbWV3aGVyZS4uLmJ1dCB0aGF0IGRvZXNuJ3Qg
c2VlbSB0byBiZSBtdWNoIG9mIGEgaGVscC4NCg0KICBDbGFzc2VzIGFyZSBhbHdheXMgZnVuICpn
cmluKg0KDQogIEFuZHJldw0K

------=_NextPart_000_0002_01C0F2A6.48A15740
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: base64

PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPg0KPE1FVEEgY29udGVudD0iTVNIVE1M
IDUuNTAuNDYxNi4yMDAiIG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+
DQo8Qk9EWSBiZ0NvbG9yPSNmZmZmZmY+DQo8QkxPQ0tRVU9URSBkaXI9bHRyIA0Kc3R5bGU9IlBB
RERJTkctTEVGVDogNXB4OyBNQVJHSU4tTEVGVDogNXB4OyBCT1JERVItTEVGVDogIzAwMDBmZiAy
cHggc29saWQ7IE1BUkdJTi1SSUdIVDogMHB4Ij4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIGNv
bG9yPSMwMDAwMDAgc2l6ZT0yPjwvRk9OVD4mbmJzcDs8L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNl
PUFyaWFsIHNpemU9Mj4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IEkgYW0g
DQogIHBvc3RpbmcgYSBxdWVzdGlvbiB3aGljaCBpcyBub3Qgc3BlY2lmaWMgdG8gcHl0aG9uLiA8
L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IElzIA0KICB0aGVyZSBhIHdheSB0byBnZXQg
dGhlIG5hbWUgb2YgYSBmdW5jdGlvbiBmcm9tIHdpdGhpbiBpdHNlbGYgYXQgcnVudGltZSA/IA0K
ICBTdXBwb3NlIHRoYXQgaSBoYXZlIGEgZnVuY3Rpb24gZjEuIEF0IHRoZSBydW4gdGltZSB3aGVu
IGl0IGVuY291bnRlcnMgc29tZSANCiAgY29uZGl0aW9uICggZXJyb3JzIG9yIHNvbWUgY29uZGl0
aW9uIHdoaWNoIGkgd2FudCB0byBsZXQgdGhlIHVzZXIga25vdyBieSANCiAgcHJpbnRpbmcpLCBJ
IHdhbnQgdG8gc2F5IHRoYXQgdGhpcyB3YXJuaW5nIG9yaWdpbmF0ZWQgZnJvbSB0aGlzIGZ1bmN0
aW9uIGYxLCANCiAgd2l0aG91dCBhY3R1YWxseSBoYXJkIGNvZGluZyB0aGF0IG5hbWUgaW4gdGhl
IHByaW50IHN0YXRlbWVudC48L0ZPTlQ+PC9ESVY+DQogIDxESVY+Jm5ic3A7PC9ESVY+DQogIDxE
SVY+PEZPTlQgZmFjZT1BcmlhbCBzaXplPTI+ZGVmIGYxKHNlbGYpOjwvRk9OVD48L0RJVj4NCiAg
PERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9Mj4mbmJzcDsmbmJzcDsmbmJzcDsgLS0tIGRvIHNv
bWV0aGluZyANCiAgLS08L0ZPTlQ+PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBzaXpl
PTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFByaW50ICJXYXJuaW5nIC4uLi4uLiIsIA0KICBmdW5jdGlv
bl9uYW1lPC9GT05UPjwvRElWPg0KICA8RElWPiZuYnNwOzwvRElWPg0KICA8RElWPjxGT05UIGZh
Y2U9QXJpYWw+PEZPTlQgc2l6ZT0yPkNhbiBpIGdldCB0aGUgZnVuY3Rpb24gbmFtZSBmcm9tIGV4
ZWN1dGlvbiANCiAgZW52aXJvbm1lbnQgb3Igc29tZXRoaW5nID88U1BBTiBjbGFzcz03MTAwNzIy
MTAtMTEwNjIwMDE+PEZPTlQgZmFjZT1UYWhvbWEgDQogIGNvbG9yPSMwMDAwZmY+Jm5ic3A7PC9G
T05UPjwvU1BBTj48L0ZPTlQ+PC9GT05UPjxGT05UIGZhY2U9QXJpYWw+PEZPTlQgDQogIHNpemU9
Mj48U1BBTiBjbGFzcz03MTAwNzIyMTAtMTEwNjIwMDE+Jm5ic3A7PC9TUEFOPjwvRk9OVD48L0ZP
TlQ+PC9ESVY+DQogIDxESVY+Jm5ic3A7PC9ESVY+DQogIDxESVY+PEZPTlQgZmFjZT1BcmlhbCBz
aXplPTI+VGhhbmtzLDwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPUFyaWFsIHNpemU9
Mj5QcmF2ZWVuLjwvRk9OVD48L0RJVj4NCiAgPERJVj48Rk9OVCBmYWNlPVRhaG9tYSBjb2xvcj0j
MDAwMGZmIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+DQogIDxESVY+PFNQQU4gY2xhc3M9NzEw
MDcyMjEwLTExMDYyMDAxPjxGT05UIGZhY2U9VGFob21hIGNvbG9yPSMwMDAwZmYgDQogIHNpemU9
Mj5XZWxsIEkmbmJzcDtodXJ0IG15IGJyYWluIHRoaW5raW5nIGFib3V0IHRoaXMgb25lLCBidXQg
SSdsbCByZXBseSANCiAgbmV2ZXJ0aGVsZXNzLiBUaGUgbW9zdCB2aWFibGUgc29sdXRpb24gSSBj
YW1lIHVwIHdpdGggd2Fzbid0IHZlcnkgDQogIHZpYWJsZTo8L0ZPTlQ+PC9TUEFOPjwvRElWPg0K
ICA8RElWPjxTUEFOIGNsYXNzPTcxMDA3MjIxMC0xMTA2MjAwMT48Rk9OVCBmYWNlPVRhaG9tYSBj
b2xvcj0jMDAwMGZmIA0KICBzaXplPTI+PC9GT05UPjwvU1BBTj4mbmJzcDs8L0RJVj4NCiAgPERJ
Vj48U1BBTiBjbGFzcz03MTAwNzIyMTAtMTEwNjIwMDE+PEZPTlQgZmFjZT1UYWhvbWEgY29sb3I9
IzAwMDBmZiBzaXplPTI+ZGVmIA0KICBmMShmdW5jPWYxKTo8L0ZPTlQ+PC9TUEFOPjwvRElWPg0K
ICA8RElWPjxTUEFOIGNsYXNzPTcxMDA3MjIxMC0xMTA2MjAwMT48Rk9OVCBmYWNlPVRhaG9tYSBj
b2xvcj0jMDAwMGZmIA0KICBzaXplPTI+Jm5ic3A7cHJpbnQgZnVuYy5mdW5jX25hbWU8L0ZPTlQ+
PC9TUEFOPjwvRElWPg0KICA8RElWPjxTUEFOIGNsYXNzPTcxMDA3MjIxMC0xMTA2MjAwMT48Rk9O
VCBmYWNlPVRhaG9tYSBjb2xvcj0jMDAwMGZmIA0KICBzaXplPTI+PC9GT05UPjwvU1BBTj4mbmJz
cDs8L0RJVj4NCiAgPERJVj48U1BBTiBjbGFzcz03MTAwNzIyMTAtMTEwNjIwMDE+PEZPTlQgZmFj
ZT1UYWhvbWEgY29sb3I9IzAwMDBmZiANCiAgc2l6ZT0yPlVzZXItZGVmaW5lZC1mdW5jdGlvbnMn
IG5hbWVzcGFjZSBpcyB0aGF0IG9mIHRoZSBjYWxsaW5nIGJsb2NrLCBnaXZlbiANCiAgYnkgZ2xv
YmFsKCkuIFRoZSBmdW5jdGlvbiBpcyBpbiB0aGVyZSBzb21ld2hlcmUuLi5idXQgdGhhdCBkb2Vz
bid0IHNlZW0gdG8gYmUgDQogIG11Y2ggb2YgYSBoZWxwLjwvRk9OVD48L1NQQU4+PC9ESVY+DQog
IDxESVY+PFNQQU4gY2xhc3M9NzEwMDcyMjEwLTExMDYyMDAxPjxGT05UIGZhY2U9VGFob21hIGNv
bG9yPSMwMDAwZmYgDQogIHNpemU9Mj48L0ZPTlQ+PC9TUEFOPiZuYnNwOzwvRElWPg0KICA8RElW
PjxTUEFOIGNsYXNzPTcxMDA3MjIxMC0xMTA2MjAwMT48Rk9OVCBmYWNlPVRhaG9tYSBjb2xvcj0j
MDAwMGZmIA0KICBzaXplPTI+Q2xhc3NlcyBhcmUgYWx3YXlzIGZ1biAqZ3Jpbio8L0ZPTlQ+PC9T
UEFOPjwvRElWPg0KICA8RElWPjxTUEFOIGNsYXNzPTcxMDA3MjIxMC0xMTA2MjAwMT48Rk9OVCBm
YWNlPVRhaG9tYSBjb2xvcj0jMDAwMGZmIA0KICBzaXplPTI+PC9GT05UPjwvU1BBTj4mbmJzcDs8
L0RJVj4NCiAgPERJVj48U1BBTiBjbGFzcz03MTAwNzIyMTAtMTEwNjIwMDE+PEZPTlQgZmFjZT1U
YWhvbWEgY29sb3I9IzAwMDBmZiANCiAgc2l6ZT0yPkFuZHJldzwvRk9OVD48L1NQQU4+PC9ESVY+
PC9CTE9DS1FVT1RFPjwvQk9EWT48L0hUTUw+DQo=

------=_NextPart_000_0002_01C0F2A6.48A15740--