:: :: ::

Recursive call with anonymous function

Whether you want to generate a dynamic function, write a dynamic algorithm or want to handle delegate inline, anonymous functions have always been at your service. However one area where in anonymous function lacking is, making a recursive call. Since it does not have function signature it’s not possible to make recursive call, at lease not directly. This entry shows you how to achieve that by utilizing some reflection API. Yes reflection, it’s always been there as your lifeguard ;).
    To understand the concept lets first create a simple recursive function to find a triangle.
Code: public int Triangle(int n)
{
  
return (n==1) ? 1 : n + Triangle(n-1);
}
Now we will use anonymous function to find a triangle. Please notice the code. It performs following steps to achive recursion.
  1. First finds the current performing method using top frame in the StackTrace.
  2. And then invokes it.
Code:
public delegate int TriangleDelegate(int n);  public static int AnonymousMethodTriangle(int n)
{
   TriangleDelegate triangle = delegate(int n)
   {
      //Find Method
      MethodBase method =
        
new StackTrace().GetFrame(0).GetMethod();
      return (n == 1) ? 1 : n +
         (
int)method.Invoke(null,new object[]
         {n-
1});//Invoke Method
    };
    return
triangle(n);
}
Pretty simple huh….

560 Responses to “Recursive call with anonymous function”

  1. Aamir Says:

    No, I dont think so. If you must use anonymuos methods and want to do recursive call then you will have to go with this approach… There is no direct simple way to achive this.

  2. Joel D'Souza Says:

    Clever stuff but sorta defeats the purpose of setting up an anonymous function in the first place, wouldn’t you think?

    Anonymous methods reduce the overhead of creating delegates and methods and also make for better readable and understandable code being placed in an in-line fashion.

    Is there a die-hard situation that you’ve come across where you’ve needed this?

  3. Aamir Says:

    Yes, I had to create dynamic functions but one of the function was required recursive calls. I was thinking about using strategy pattern, but was not possible because lots of client code was already written, and it was difficult to change that.

    At that time this was the solution that came to my rescue. :)

  4. alstroemeria anajeana Says:

    Cool site. Thanks!

  5. alstroemeria annapolina Says:

    Cool site. Thanks!

  6. alstroemeria ligtu Says:

    Cool site. Thank you.

  7. alstroemeria aurantiaca Says:

    Cool site. Thanks.

  8. alstroemeria achirae Says:

    Cool site. Thank you.

  9. alstroemeria seed Says:

    Cool site. Thank you!!!

  10. alstroemeria psittacine variegata Says:

    Cool site. Thank you.

  11. scott rolen Says:

    Cool site. Thanks!

  12. arch support Says:

    Cool site. Thanks:-)

  13. cellular band rf linear ldmos amplifier Says:

    Cool site. Thanks.

  14. julien plantier Says:

    Cool site. Thanks!!!

  15. cape castle hotel protea Says:

    Cool site. Thank you:-)

  16. cape hotel president protea town Says:

    Cool site. Thanks:-)

  17. protea aspera Says:

    Cool site. Thanks!!!

  18. plant protea Says:

    Cool site. Thanks!!!

  19. lpueajo xejzdu Says:

    gohquwy gwqx npvlh bijxtnf fcjvlp cedmpyh zntj

  20. SexyGirl Says:

    Ñool site!

  21. hardware Says:

    Cool site. Thanks:-)

  22. bumper pool poker table Says:

    Cool site. Thanks!!!

  23. best build poker table world Says:

    Cool site. Thanks!

  24. blue print poker table Says:

    Cool site. Thank you:-)

  25. adultwork Says:

    Nise site!

  26. contact myspace poker table Says:

    Cool site. Thanks!!!

  27. building poker price table Says:

    Cool site. Thanks:-)

  28. best build poker table world Says:

    Cool site. Thank you!

  29. cloth for poker speed table Says:

    Cool site. Thanks!!!

  30. cover felt poker table Says:

    Cool site. Thanks:-)

  31. antique poker table Says:

    Cool site. Thank you:-)

  32. electronics Says:

    Cool site. Thanks:-)

  33. software Says:

    Cool site. Thank you!

  34. hydrocodone vicodin Says:

    Cool site. Thank you.

  35. air tickets to india Says:

    Cool site. Thanks:-)

  36. air travel ticket Says:

    Cool site. Thank you!!!

  37. vicodin es Says:

    Cool site. Thanks!

  38. home insurance Says:

    Cool site. Thanks!

  39. mortgage refinance Says:

    Cool site. Thank you.

  40. premium insurance Says:

    Cool site. Thank you.

  41. small business loans Says:

    Cool site. Thanks!

  42. James Says:

    I just want to say thank you for taking the time & effort for put this web page together!

  43. meridia 15mg Says:

    Cool site. Thank you!

  44. mr.Open Says:

    mr.Open…

    Let me disagree….

  45. Jennifer Says:

    Hi everybody! Wanna see my cool pages? Would you please also visit my homepage?

  46. airline tickets europe Says:

    Cool site. Thank you!

  47. euronext trading system Says:

    Cool site. Thank you!!!

  48. sound levels of bravo ii drives Says:

    Cool site. Thanks!

  49. traditional house warming gift Says:

    Cool site. Thanks:-)

  50. alltel ringtone Says:

    Cool site. Thanks:-)

  51. thehun Says:

  52. sba loan Says:

    Cool site. Thank you:-)

  53. vogue on the go hats book crochet Says:

    Cool site. Thanks!!!

  54. bare essentials mineral makeup Says:

    Cool site. Thank you.

  55. massens Says:

    Cool site. Thanks!

  56. school loans Says:

    Cool site. Thank you:-)

  57. airline ticket Says:

    Cool site. Thanks!

  58. american dishes Says:

    Cool site. Thanks!

  59. sony 52x cd r Says:

    Cool site. Thank you.

  60. patchouli Says:

    Cool site. Thank you!!!

  61. armor piercing 50 caliper rifle Says:

    Cool site. Thank you!!!

  62. flag of argentina Says:

    Cool site. Thanks!

  63. rieuqdtyp numzdswp Says:

    zklfhoce ermcxdza nmscxeflv hlok teiomsdx iagyoqcdh iurvkyo

  64. travel insurance Says:

    Cool site. Thanks.

  65. visa credit cards Says:

    Cool site. Thank you.

  66. credit card calculator Says:

    Cool site. Thank you!

  67. wtxkkosd Says:

    wtxkkosd…

    wtxkkosd…

  68. Jenna Says:

    i can not stay here any more

  69. ma529zda Says:

    c432t

  70. wvtdinht Says:

    wvtdinht…

    wvtdinht…

  71. Idetrorce Says:

    very interesting, but I don’t agree with you
    Idetrorce

  72. ma566zda Says:

    c740t

  73. t96t Says:

    c905t

  74. t293t Says:

    c391t

  75. ma79zda Says:

    c556t

  76. ma866zda Says:

    c457t

  77. ma759zda Says:

    c972t

  78. ma144zda Says:

    c884t

  79. ma846zda Says:

    c61t

  80. t190t Says:

    c982t

  81. ma741zda Says:

    c517t

  82. ma663zda Says:

    c192t

  83. ma995zda Says:

    c459t

  84. ma741zda Says:

    c827t

  85. ma274zda Says:

    c691t

  86. t612t Says:

    c941t

  87. t513t Says:

    c709t

  88. t157t Says:

    c820t

  89. t809t Says:

    c395t

  90. t835t Says:

    c262t

  91. t214t Says:

    c968t

  92. t556t Says:

    c301t

  93. ma931zda Says:

    c44t

  94. t52t Says:

    c19t

  95. t165t Says:

    c342t

  96. ma495zda Says:

    c783t

  97. t988t Says:

    c587t

  98. t364t Says:

    c552t

  99. ma111zda Says:

    c607t

  100. t12t Says:

    c594t

  101. t370t Says:

    c635t

  102. t217t Says:

    c232t

  103. ma815zda Says:

    c923t

  104. t690t Says:

    c503t

  105. t601t Says:

    c128t

  106. t433t Says:

    c473t

  107. t645t Says:

    c943t

  108. t287t Says:

    c822t

  109. ma496zda Says:

    c763t

  110. t423t Says:

    c439t

  111. t399t Says:

    c110t

  112. t523t Says:

    c870t

  113. t268t Says:

    c627t

  114. ma178zda Says:

    c470t

  115. ma769zda Says:

    c308t

  116. t359t Says:

    c600t

  117. t618t Says:

    c825t

  118. t43t Says:

    c975t

  119. law school Says:

    c843t

  120. t53t Says:

    c382t

  121. ma821zda Says:

    c217t

  122. t416t Says:

    c247t

  123. ma32zda Says:

    c321t

  124. t124t Says:

    c48t

  125. t863t Says:

    c214t

  126. ma819zda Says:

    c189t

  127. t683t Says:

    c193t

  128. ma422zda Says:

    c234t

  129. ma99zda Says:

    c137t

  130. ma632zda Says:

    c878t

  131. t916t Says:

    c389t

  132. ma729zda Says:

    c108t

  133. t208t Says:

    c334t

  134. t394t Says:

    c99t

  135. t110t Says:

    c102t

  136. t831t Says:

    c202t

  137. t451t Says:

    c147t

  138. t828t Says:

    c514t

  139. t607t Says:

    c55t

  140. ma685zda Says:

    c480t

  141. t597t Says:

    c526t

  142. t617t Says:

    c705t

  143. t211t Says:

    c166t

  144. ma354zda Says:

    c78t

  145. ma963zda Says:

    c725t

  146. t333t Says:

    c467t

  147. ma664zda Says:

    c445t

  148. t625t Says:

    c592t

  149. ma814zda Says:

    c361t

  150. t776t Says:

    c251t

  151. t125t Says:

    c533t

  152. t691t Says:

    c915t

  153. t618t Says:

    c310t

  154. ma957zda Says:

    c228t

  155. ma952zda Says:

    c505t

  156. ma347zda Says:

    c804t

  157. ma920zda Says:

    c366t

  158. ma445zda Says:

    c743t

  159. t296t Says:

    c514t

  160. ma310zda Says:

    c980t

  161. ma766zda Says:

    c631t

  162. t6t Says:

    c576t

  163. t118t Says:

    c64t

  164. t838t Says:

    c199t

  165. t509t Says:

    c514t

  166. t754t Says:

    c344t

  167. t378t Says:

    c934t

  168. t542t Says:

    c488t

  169. t142t Says:

    c539t

  170. ma828zda Says:

    c149t

  171. ma42zda Says:

    c782t

  172. t725t Says:

    c622t

  173. t136t Says:

    c139t

  174. ma795zda Says:

    c133t

  175. t266t Says:

    c888t

  176. ma562zda Says:

    c181t

  177. ma267zda Says:

    c3t

  178. ma990zda Says:

    c763t

  179. t679t Says:

    c586t

  180. ma797zda Says:

    c135t

  181. ma708zda Says:

    c864t

  182. t878t Says:

    c860t

  183. ma377zda Says:

    c335t

  184. t942t Says:

    c860t

  185. t642t Says:

    c453t

  186. ma713zda Says:

    c820t

  187. t692t Says:

    c198t

  188. t970t Says:

    c811t

  189. t250t Says:

    c147t

  190. t770t Says:

    c990t

  191. ma945zda Says:

    c425t

  192. ma146zda Says:

    c909t

  193. ma740zda Says:

    c518t

  194. t519t Says:

    c918t

  195. ma683zda Says:

    c530t

  196. t74t Says:

    c570t

  197. t803t Says:

    c462t

  198. ma672zda Says:

    c171t

  199. t909t Says:

    c435t

  200. ma196zda Says:

    c296t

  201. t265t Says:

    c904t

  202. ma731zda Says:

    c196t

  203. t889t Says:

    c18t

  204. t104t Says:

    c457t

  205. ma270zda Says:

    c458t

  206. ma769zda Says:

    c486t

  207. t674t Says:

    c140t

  208. ma698zda Says:

    c807t

  209. charter school Says:

    c991t

  210. ma471zda Says:

    c503t

  211. ma221zda Says:

    c832t

  212. ma195zda Says:

    c861t

  213. t229t Says:

    c284t

  214. t71t Says:

    c341t

  215. t451t Says:

    c478t

  216. ma660zda Says:

    c384t

  217. ma371zda Says:

    c655t

  218. ma918zda Says:

    c717t

  219. ma858zda Says:

    c470t

  220. ma904zda Says:

    c42t

  221. ma751zda Says:

    c814t

  222. ma753zda Says:

    c827t

  223. t835t Says:

    c150t

  224. ma377zda Says:

    c100t

  225. t285t Says:

    c654t

  226. t959t Says:

    c564t

  227. ma117zda Says:

    c4t

  228. ma382zda Says:

    c868t

  229. t188t Says:

    c972t

  230. ma611zda Says:

    c868t

  231. ma870zda Says:

    c817t

  232. ma651zda Says:

    c862t

  233. t763t Says:

    c733t

  234. ma32zda Says:

    c973t

  235. ma412zda Says:

    c743t

  236. t799t Says:

    c431t

  237. t27t Says:

    c920t

  238. t843t Says:

    c447t

  239. ma431zda Says:

    c724t

  240. ma68zda Says:

    c872t

  241. ma737zda Says:

    c240t

  242. t32t Says:

    c549t

  243. t237t Says:

    c441t

  244. ma766zda Says:

    c864t

  245. t240t Says:

    c411t

  246. ma765zda Says:

    c166t

  247. ma391zda Says:

    c85t

  248. t991t Says:

    c678t

  249. t26t Says:

    c207t

  250. t20t Says:

    c471t

  251. t117t Says:

    c659t

  252. ma616zda Says:

    c245t

  253. t445t Says:

    c509t

  254. ma471zda Says:

    c148t

  255. t733t Says:

    c352t

  256. t830t Says:

    c275t

  257. cricket cell phone ringtone Says:

    c921t

  258. t729t Says:

    c686t

  259. t186t Says:

    c397t

  260. t232t Says:

    c30t

  261. t967t Says:

    c403t

  262. ma666zda Says:

    c661t

  263. t786t Says:

    c205t

  264. ma886zda Says:

    c837t

  265. ma192zda Says:

    c157t

  266. ma319zda Says:

    c340t

  267. ma287zda Says:

    c852t

  268. ma39zda Says:

    c270t

  269. t351t Says:

    c626t

  270. ma906zda Says:

    c803t

  271. t953t Says:

    c892t

  272. ma556zda Says:

    c965t

  273. ma673zda Says:

    c900t

  274. t992t Says:

    c879t

  275. ma692zda Says:

    c358t

  276. ma569zda Says:

    c213t

  277. ma436zda Says:

    c271t

  278. t942t Says:

    c363t

  279. ma493zda Says:

    c7t

  280. ma51zda Says:

    c216t

  281. t344t Says:

    c380t

  282. t63t Says:

    c115t

  283. t544t Says:

    c456t

  284. ma432zda Says:

    c584t

  285. ma856zda Says:

    c803t

  286. ma894zda Says:

    c518t

  287. ma149zda Says:

    c758t

  288. ma455zda Says:

    c328t

  289. t589t Says:

    c192t

  290. free theology course Says:

    King of the omelet -…

    But he says he uses no special equipment except “the most generic 10-inch coated frying pan.” To make an omelet…

  291. t638t Says:

    c462t

  292. ma511zda Says:

    c489t

  293. ma305zda Says:

    c466t

  294. ma904zda Says:

    c305t

  295. t657t Says:

    c6t

  296. ma936zda Says:

    c392t

  297. t733t Says:

    c92t

  298. ky divorce record Says:

    Vaden, Davis try to be…

    In early 2006, when it seemed inevitable Davis and IU were headed for a divorce, the negativity in Bloomington weighed…

  299. house boat for sale florida Says:

    Ex-wife to go over Norman,…

    These include a potential tax liability on Norman’s private jet, as well as the sale of their four bedroom home…

  300. motorola cell accessory Says:

    Cell Phone Aficionado Starts Cell…

    The Vacuums 365 Blog informs readers about the latest news on great products from manufacturers like Motorola cell phones, and…

  301. ma889zda Says:

    c456t

  302. typeglobbybup Says:

    [b]????? ???????????? ??????????:[/b]
    ?????? ???????????? ?????????-??????? ??????????.
    ???? ?????????: ????????????, ??????????????, ?????????????????, ???????????????, ???????????????.
    [b]?????????. ??????? ?? ???: 80501439517[/b]

  303. 6133 accessory nokia Says:

    Nokia 6263 - black (T-Mobile)…

    The bottom line: With a solid combination of design, features, and performance, the Nokia 6263 is a worthy successor to…

  304. ma469zda Says:

    c450t

  305. t730t Says:

    c842t

  306. t395t Says:

    c451t

  307. ma161zda Says:

    c63t

  308. ma589zda Says:

    c210t

  309. t994t Says:

    c52t

  310. ma73zda Says:

    c764t

  311. t775t Says:

    c89t

  312. ma914zda Says:

    c163t

  313. t447t Says:

    c726t

  314. t928t Says:

    c667t

  315. ma672zda Says:

    c557t

  316. t122t Says:

    c301t

  317. ma475zda Says:

    c538t

  318. t28t Says:

    c41t

  319. t243t Says:

    c372t

  320. t581t Says:

    c812t

  321. t283t Says:

    c674t

  322. t641t Says:

    c984t

  323. t343t Says:

    c41t

  324. ma250zda Says:

    c247t

  325. t513t Says:

    c206t

  326. ma464zda Says:

    c299t

  327. ma902zda Says:

    c687t

  328. t892t Says:

    c136t

  329. t95t Says:

    c891t

  330. t283t Says:

    c521t

  331. Verizon Phones Says:

    c272t

  332. ma689zda Says:

    c856t

  333. ma647zda Says:

    c153t

  334. ma472zda Says:

    c216t

  335. ma685zda Says:

    c129t

  336. ma723zda Says:

    c587t

  337. t155t Says:

    c881t

  338. t124t Says:

    c817t

  339. t877t Says:

    c980t

  340. ma485zda Says:

    c276t

  341. ma116zda Says:

    c538t

  342. t934t Says:

    c240t

  343. t345t Says:

    c679t

  344. t740t Says:

    c917t

  345. t367t Says:

    c953t

  346. t596t Says:

    c463t

  347. t506t Says:

    c87t

  348. australian swingers Says:

    c558t

  349. australian swingers Says:

    c202t

  350. t706t Says:

    c477t

  351. t438t Says:

    c271t

  352. ma188zda Says:

    c357t

  353. t218t Says:

    c756t

  354. t527t Says:

    c844t

  355. Download Free Ring Tones For Motorola V3 Says:

    c560t

  356. ma567zda Says:

    c625t

  357. ma289zda Says:

    c751t

  358. t878t Says:

    c448t

  359. t886t Says:

    c597t