elektron Posted May 22, 2012 Posted May 22, 2012 I'm trying to solve a problem on rosetta code, and I run into this issue where AutoIt give me the error: recursion level exceeded. Can someone help? Func main() For $i = 0 To 1 Step 1 ConsoleWrite(F($i)) Next ConsoleWrite(@LF) For $i = 0 To 20 Step 1 ConsoleWrite(M($i)) Next ConsoleWrite(@LF) EndFunc Func F($n) If($n = 0) Then Return 1 Else Return $n - M(F($n-1)); EndIf EndFunc Func M($n) If($n = 0) Then Return 1 Else Return $n - F(M($n-1)); EndIf EndFunc main()
BrewManNH Posted May 22, 2012 Posted May 22, 2012 It depends on what this is supposed to be doing. Right now you're calling the F and M functions thousands of times in a few seconds and it crashes the script. If you've downloaded the full version of Scite4AutoIt3, you can go to the tools menu and use the "Trace: Add Func trace lines" tool, and then run your script, you'll see exactly what the problem is. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
PhoenixXL Posted May 22, 2012 Posted May 22, 2012 (edited) Your Main Funtion Calls Func F two times once with Parameter 0 ,F returns 1, and with Parameter 1 ... Here all the Problem Goes When the Parameter is 1 This is Your Code Return $n - M(F($n-1)) You Call 1-M(F(1-1)) Which Equals to 1-M(F(0)) F(0) will Return 1 and 1 will be passed as a Parameter to Func M Then This Willl be the Code $n - F(M($n-1)) {In Func M with Parameter 1} i.e. 1-F(M(1-1)) M(0) will Return 1 and Again , See Again F(1) will Be Called THis WIll again Perform All These Functions Once Again.. Therez the Recursion Edited May 22, 2012 by PhoenixXL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.
BrewManNH Posted May 22, 2012 Posted May 22, 2012 That's pretty much what I already said in my post. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
PhoenixXL Posted May 22, 2012 Posted May 22, 2012 Well BrewMan when i visited this Forum there was No Reply But it took Time to Me for Finding the Correct and Exact Problem and I even Didn't Refresh the Page Upon Finding the Soution I posted it n Found That U have Already Posted the Solution Sorry for the Inconveniance Regards Phoenix XL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.
elektron Posted May 27, 2012 Author Posted May 27, 2012 Thank you guys so much for the help. I haven't quite gotten to solving it yet, but I'm going to get on my windows PC tonight and work on it. Here's the problem that I'm solving on rosettacode. [blog='http://rosettacode.org/wiki/Mutual_recursion#AutoHotkey'][/blog]
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now