We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

A Muggle's Guide to Tail Call Optimization in Ruby

00:00

Formal Metadata

Title
A Muggle's Guide to Tail Call Optimization in Ruby
Subtitle
A magic-free tour of tail-call optimization in MRI Ruby
Title of Series
Number of Parts
66
Author
Contributors
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Producer
Production PlaceSan Antonio

Content Metadata

Subject Area
Genre
Abstract
Submitted for your approval: a circle of torment unchronicled by the poets of old, a terror at the heart of many a horror story: SystemStackError: stack level too deep Tremble no more! Conquer the well of eternity! Behold the secrets of tail recursion and tail call optimization in Ruby! Witness the metamorphosis of a simple function as we explore the hidden power of tail call optimization buried deep within the Ruby VM! Follow the transformation to the revelation of tail call optimization's most ghastly secret: in many ways it's really just a special type of loop construct! The horror!
System callEmpennageMathematical optimizationElectronic program guideTerm (mathematics)Event horizonSlide rule2 (number)Physical systemElectronic program guideBitAxiom of choiceFormal languageError messageGoodness of fitTracing (software)Mathematical optimizationPresentation of a groupMultiplication signInheritance (object-oriented programming)Lecture/Conference
Value-added networkCapability Maturity ModelDemonIntelFormal languageRight angleMoment (mathematics)Multiplication signObject (grammar)CASE <Informatik>Formal languageDivisorObject-oriented programmingFunction (mathematics)Capability Maturity ModelDemonBlogSystem callSelectivity (electronic)InternetworkingBitPoint (geometry)Type theoryTotal S.A.View (database)Spectrum (functional analysis)Parameter (computer programming)Medical imagingMathematical optimizationRight angleDecision theoryMathematicsLecture/Conference
View (database)Point (geometry)Context awarenessLine (geometry)Endliche ModelltheorieMultiplication signArithmetic meanProcess (computing)DemosceneComputer animationLecture/Conference
EmpennageCanonical ensembleGroup actionSystem callBitTerm (mathematics)Canonical ensembleType theoryProcedural programmingPosition operatorLine (geometry)Focus (optics)Contrast (vision)Lecture/Conference
EmpennageCanonical ensembleNormed vector spaceProper mapSystem callSystem callResultantLine (geometry)CASE <Informatik>Multiplication signState of matterParameter (computer programming)Operator (mathematics)Function (mathematics)Moment (mathematics)BitExpressionCountingSampling (statistics)Type theoryPower (physics)RecursionMathematical optimizationArithmetic meanInterior (topology)Validity (statistics)CounterexampleComputer animationLecture/Conference
Moment (mathematics)RecursionSystem callEmpennageSign (mathematics)ProgrammschleifeoutputMoment (mathematics)Function (mathematics)RecursionCountingCASE <Informatik>Perspective (visual)AdditionSystem callLoop (music)Operator (mathematics)Block (periodic table)Formal languageProgrammschleifeParameter (computer programming)Mathematical optimizationState of matterIterationStack (abstract data type)ArmVariable (mathematics)Default (computer science)Frame problemPurchasingType theoryTaylor seriesCalculusLecture/Conference
Interior (topology)Mathematical optimizationSystem callEmpennageGaussian eliminationMathematical optimizationRadical (chemistry)Arithmetic meanInternetworkingBitSystem callGaussian eliminationFrame problemLecture/Conference
Wide area networkSineView (database)Point (geometry)RecursionMathematical optimizationEmpennageIntegrated development environmentCountingPoint (geometry)View (database)Integrated development environmentCountingMathematical optimizationSystem callDefault (computer science)RecursionMultilaterationFrame problemFunction (mathematics)Semiconductor memoryFormal languageRecurrence relationDimensional analysisWave packetLecture/Conference
Stack (abstract data type)Level (video gaming)System callMathematical optimizationStack (abstract data type)RecursionError messageLevel (video gaming)CASE <Informatik>Lecture/Conference
EmpennageSystem callMathematicsModule (mathematics)Frame problemStack (abstract data type)Game theoryStatisticsComplete metric spaceFrame problemSystem callGroup actionResultantStack (abstract data type)Arithmetic meanComputer programmingInheritance (object-oriented programming)Numbering schemeFigurate numberInterpreter (computing)Mathematical optimizationProcedural programmingRow (database)Range (statistics)Formal languageFunction (mathematics)Parameter (computer programming)Graph coloringHand fanDivisorTesselation1 (number)Gaussian elimination
EmpennageInheritance (object-oriented programming)Stack (abstract data type)System callFrame problemSemiconductor memoryInheritance (object-oriented programming)Default (computer science)System callProcess (computing)Computer programmingNeuroinformatikIterationFrame problemMathematical optimizationGaussian eliminationGreen's functionFunction (mathematics)Film editingInsertion lossRight angleQuicksortMoment (mathematics)Staff (military)Point (geometry)Computer animation
System callEmpennageInterior (topology)Hill differential equationMathematical optimizationQuicksortSinc functionMultiplication signDefault (computer science)System callProduct (business)Software testingMetropolitan area networkLecture/ConferenceComputer animation
Mathematical optimizationSystem callEmpennageFlagSequenceCurvatureBlogInstallation artPatch (Unix)Interior (topology)Menu (computing)Computer configurationRun time (program lifecycle phase)CodeProduct (business)Software testingCycle (graph theory)FlagInstance (computer science)CASE <Informatik>Wave packetReal numberData structureSequenceComputer configurationNetwork topologyComplex (psychology)Ring (mathematics)Mathematical optimizationAdditionFunction (mathematics)System callCodeObject (grammar)BitInternetworkingMultiplication sign1 (number)Moment (mathematics)Compilation albumString (computer science)Run time (program lifecycle phase)ECosNormal (geometry)Projective planeSoftware engineeringLogicGateway (telecommunications)Social classAuthorizationProcess (computing)Goodness of fitBlock (periodic table)Structural loadDefault (computer science)Patch (Unix)SoftwareRaw image formatDifferenz <Mathematik>Type theoryLecture/ConferenceComputer animation
CodeOvalObject (grammar)Physical systemMereologyStrategy gameModule (mathematics)String (computer science)CodeBlock (periodic table)Source codeCovering spaceMathematical optimizationSystem callCASE <Informatik>SequenceFactory (trading post)Social classStack (abstract data type)Pattern languageError messageType theoryMixed realityEndliche ModelltheorieDemosceneLecture/Conference
EmpennageMathematical optimizationChromosomal crossoverFormal languageFrame problemFunction (mathematics)NavigationRange (statistics)Object (grammar)String (computer science)System callPoint (geometry)Resource allocationRevision controlFormal languageGroup actionProgramming paradigmDifferent (Kate Ryan album)CASE <Informatik>1 (number)Mathematical optimizationComputer configurationMereologyFamilyProduct (business)Multiplication signStrategy gameSpeicherbereinigungServer (computing)Chromosomal crossoverAuthorizationBlogAbstractionCodeMultiplicationGoodness of fitScripting languagePower (physics)Semiconductor memoryParameter (computer programming)Form (programming)Web browserObject-oriented programmingDivisorDefault (computer science)Frame problemOrientation (vector space)Degree (graph theory)Metropolitan area networkSoftware testingRecursion
StatisticsGame theoryEmpennageNetwork topologyMathematical optimizationGoodness of fitCodeData structureRun time (program lifecycle phase)SpeicherbereinigungPoint (geometry)Set (mathematics)BenchmarkDivisorAnalytic continuationSource codeBuffer overflowSequenceComputer configuration1 (number)Strategy gameCASE <Informatik>Loop (music)Presentation of a groupAlgorithmPairwise comparisonRight angleObject (grammar)Default (computer science)Crash (computing)Factory (trading post)BlogStaff (military)System callHookingError messageSurjective functionStack (abstract data type)Game theoryBackupPointer (computer programming)EmailBlock (periodic table)
Covering spaceFormal languageFlagNumberSystem callComputer programmingMathematical optimizationObject (grammar)Exception handlingVector potentialCodeFigurate numberSequenceOrder (biology)Metric systemBuffer overflowFrame problemModule (mathematics)Stack (abstract data type)Different (Kate Ryan album)MereologyInheritance (object-oriented programming)Lattice (order)BlogDefault (computer science)State of matterAdditionStaff (military)Extreme programmingPresentation of a groupProof theoryMultiplication signTable (information)Endliche Modelltheorie
Mathematical optimizationSystem callSuite (music)Cartesian coordinate systemFormal languageSoftware testingServer (computing)Network topologyType theoryCASE <Informatik>Electronic mailing listJava appletComputer configurationAlgorithmLevel (video gaming)Hash functionPerspective (visual)Right angleArithmetic meanWeb 2.0Semiconductor memoryProduct (business)Row (database)Process (computing)Uniform boundedness principleSurgeryComputer programmingLink (knot theory)Observational studyBuilding
Videoconferencing
Transcript: English(auto-generated)