CINXE.COM
Recursion Theory and Recursive Functions
<!DOCTYPE html> <html lang="en" class="cls-fix-enabled"> <head> <meta name="pageKey" content="d_flagship2_pulse_read"> <meta name="robots" content="max-image-preview:large, noarchive"> <meta name="bingbot" content="nocache"> <!----> <meta name="locale" content="en_US"> <meta id="config" data-app-version="0.0.4272" data-call-tree-id="AAYpiZLc5y/Lcyaxn90Pyw==" data-multiproduct-name="article-ssr-frontend" data-service-name="article-ssr-frontend" data-browser-id="c2fe7bdc-551d-4078-815d-25dd323706d6" data-enable-page-view-heartbeat-tracking data-page-instance="urn:li:page:d_flagship2_pulse_read;JgbhE+K7QT+zXAFJw3Y3Kw==" data-theme="light" data-disable-jsbeacon-pagekey-suffix="false" data-member-id="0" data-logout-url="https://www.linkedin.com/uas/logout?session_full_logout=true&csrfToken=ajax%3A7283306553055797493" data-should-use-full-url-in-pve-path="true" data-dna-member-lix-treatment="control" data-human-member-lix-treatment="control" data-dfp-member-lix-treatment="control" data-sync-apfc-headers-lix-treatment="control" data-sync-apfc-cb-lix-treatment="control"> <link rel="canonical" href="https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc"> <!----><!----> <!----> <!----> <!----> <link rel="manifest" href="/homepage-guest/manifest.json" crossorigin="use-credentials"> <link rel="icon" href="https://static.licdn.com/aero-v1/sc/h/al2o9zrvru7aqj8e1x2rzsrca"> <script> function getDfd() {let yFn,nFn;const p=new Promise(function(y, n){yFn=y;nFn=n;});p.resolve=yFn;p.reject=nFn;return p;} window.lazyloader = getDfd(); window.tracking = getDfd(); window.impressionTracking = getDfd(); window.ingraphTracking = getDfd(); window.appDetection = getDfd(); window.pemTracking = getDfd(); </script> <!----> <title>Recursion Theory and Recursive Functions</title> <link rel="stylesheet" href="https://static.licdn.com/aero-v1/sc/h/5i3x71whhxbz1frg33j4234ub"> <meta name="description" content="December 2023, Hasanain Alsabonchi and Julien Chaffraix. Recursion theory is a subfield of Computer Science."> <meta property="og:title" content="Recursion Theory and Recursive Functions"> <meta property="og:description" content="December 2023, Hasanain Alsabonchi and Julien Chaffraix. Recursion theory is a subfield of Computer Science."> <meta property="og:image" content="https://media.licdn.com/dms/image/v2/D5612AQHmEjzSPK73LA/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1703378366254?e=2147483647&v=beta&t=7t35H6nhecAQtSpxcltns6hnpFdLAkNpFOKXCinyxF8"> <meta property="og:type" content="article"> <meta property="og:url" content="https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@LinkedInEditors"> <meta name="twitter:title" content="Recursion Theory and Recursive Functions"> <meta name="twitter:description" content="December 2023, Hasanain Alsabonchi and Julien Chaffraix. Recursion theory is a subfield of Computer Science."> <meta name="twitter:image" content="https://media.licdn.com/dms/image/v2/D5612AQHmEjzSPK73LA/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1703378366254?e=2147483647&v=beta&t=7t35H6nhecAQtSpxcltns6hnpFdLAkNpFOKXCinyxF8"> <meta name="appId"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Hasanain Alsabonchi"> <meta name="twitter:label2" content="Reading time"> <meta name="twitter:data2" content="6 min read"> <meta name="clientSideIngraphs" content="1" data-gauge-metric-endpoint="/pulse/api/ingraphs/gauge" data-counter-metric-endpoint="/pulse/api/ingraphs/counter"> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"Article","headline":"December 2023, Hasanain Alsabonchi and Julien Chaffraix. Recursion theory is a subfield of Computer Science.","url":"https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc","publisher":null,"name":"Recursion Theory and Recursive Functions","commentCount":2,"interactionStatistic":[{"interactionType":"http://schema.org/LikeAction","userInteractionCount":11,"@type":"InteractionCounter"},{"interactionType":"http://schema.org/CommentAction","userInteractionCount":2,"@type":"InteractionCounter"}],"datePublished":"2023-12-27T20:01:19.000+00:00","mainEntityOfPage":"https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc","isAccessibleForFree":true,"image":{"url":"https://media.licdn.com/dms/image/v2/D5612AQHmEjzSPK73LA/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1703378366254?e=2147483647&v=beta&t=7t35H6nhecAQtSpxcltns6hnpFdLAkNpFOKXCinyxF8","@type":"ImageObject"},"dateModified":"2023-12-27T20:01:20.000+00:00","author":{"@type":"Person","url":"https://www.linkedin.com/in/sabonchi","name":"Hasanain Alsabonchi","image":"https://media.licdn.com/dms/image/v2/D5603AQFsCDzWBqBSxQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1715275569997?e=2147483647&v=beta&t=PIp7t8FBMvhGJzRggkWkIZU_noERJENBCVb4jrSBHS0","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/FollowAction","name":"Followers","userInteractionCount":456}}} </script> <!----> </head> <body dir="ltr"> <!----><!----><!----> <div class="guest-upsells"> <form class="google-auth base-google-auth" action="https://www.linkedin.com/uas/login-submit" method="post"> <input name="loginCsrfParam" value="c2fe7bdc-551d-4078-815d-25dd323706d6" type="hidden"> <input name="session_redirect" value="https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc" type="hidden"> <input name="trk" value="pulse-article_google-one-tap-submit" type="hidden"> <code id="termsAndConditionsRendered" style="display: none"><!--true--></code> <div class="google-one-tap__module hidden fixed flex flex-col items-center top-[20px] right-[20px] z-[9999]"> <div class="relative top-2 bg-color-background-container-tint pl-2 pr-1 pt-2 pb-3 w-[375px] rounded-md shadow-2xl"> <p class="text-md font-bold text-color-text"> Agree & Join LinkedIn </p> <p class="linkedin-tc__text text-color-text-low-emphasis text-xs pb-2 !text-sm !text-color-text" data-impression-id="pulse-article_one-tap-skip-tc-text"> By clicking Continue to join or sign in, you agree to LinkedIn’s <a href="/legal/user-agreement?trk=linkedin-tc_auth-button_user-agreement" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_user-agreement" data-tracking-will-navigate="true">User Agreement</a>, <a href="/legal/privacy-policy?trk=linkedin-tc_auth-button_privacy-policy" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_privacy-policy" data-tracking-will-navigate="true">Privacy Policy</a>, and <a href="/legal/cookie-policy?trk=linkedin-tc_auth-button_cookie-policy" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_cookie-policy" data-tracking-will-navigate="true">Cookie Policy</a>. </p> </div> <div data-tracking-control-name="pulse-article_google-one-tap" id="google-one-tap__container"></div> </div> <div class="loader loader--full-screen"> <div class="loader__container mb-2 overflow-hidden"> <icon class="loader__icon inline-block loader__icon--default text-color-progress-loading" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/ddi43qwelxeqjxdd45pe3fvs1" data-svg-class-name="loader__icon-svg--large fill-currentColor h-[60px] min-h-[60px] w-[60px] min-w-[60px]"></icon> </div> </div> </form> <script data-delayed-url="https://static.licdn.com/aero-v1/sc/h/29rdkxlvag0d3cpj96fiilbju" data-module-id="google-gsi-lib"></script> <code id="isLinkedInAppWebView" style="display: none"><!--false--></code> <code id="shouldRemoveUndefinedValues" style="display: none"><!--false--></code> <code id="isItpSupportEnabled" style="display: none"><!--false--></code> <code id="isFedCMEnabled" style="display: none"><!--false--></code> <div class="contextual-sign-in-modal base-contextual-sign-in-modal" data-impression-id="pulse-article_contextual-sign-in-modal" data-cool-off-enabled data-show-on-page-load> <!----> <div class> <!----> <div id="base-contextual-sign-in-modal" class="modal modal--contextual-sign-in" data-outlet="base-contextual-sign-in-modal"> <!----> <div class="modal__overlay flex items-center bg-color-background-scrim justify-center fixed bottom-0 left-0 right-0 top-0 opacity-0 invisible pointer-events-none z-[1000] transition-[opacity] ease-[cubic-bezier(0.25,0.1,0.25,1.0)] duration-[0.17s] py-4 " aria-hidden="true"> <section aria-modal="true" role="dialog" aria-labelledby="base-contextual-sign-in-modal-modal-header" tabindex="-1" class="max-h-full modal__wrapper overflow-auto p-0 bg-color-surface max-w-[1128px] min-h-[160px] relative scale-[0.25] shadow-sm shadow-color-border-faint transition-[transform] ease-[cubic-bezier(0.25,0.1,0.25,1.0)] duration-[0.33s] focus:outline-0 w-[1128px] mamabear:w-[744px] babybear:w-[360px] rounded-md"> <button class="modal__dismiss btn-tertiary h-[40px] w-[40px] p-0 rounded-full indent-0 contextual-sign-in-modal__modal-dismiss absolute right-0 m-[20px] cursor-pointer" aria-label="Dismiss" data-tracking-control-name="pulse-article_contextual-sign-in-modal_modal_dismiss"> <icon class="contextual-sign-in-modal__modal-dismiss-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/gs508lg3t2o81tq7pmcgn6m2"></icon> </button> <div class="modal__main w-full"> <div class="contextual-sign-in-modal__screen contextual-sign-in-modal__context-screen flex flex-col my-4 mx-3"> <img class="inline-block relative w-16 h-16 contextual-sign-in-modal__img m-auto" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5k9cgtx8rhoyqkcxfoncu1svl" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <h2 class="contextual-sign-in-modal__context-screen-title font-sans text-xl text-color-text my-2 mx-4 text-center" id="base-contextual-sign-in-modal-modal-header"> Sign in to view more content </h2> <p class="contextual-sign-in-modal__subtitle mb-2 mx-12 babybear:mx-0 text-center font-sans text-md text-color-text"> Create your free account or sign in to continue your search </p> <!----> <div class="contextual-sign-in-modal__btn-container m-auto w-[320px] babybear:w-full"> <!----> <div class="w-full max-w-[400px] mx-auto"> <div class="google-auth-button"> <!----> <div class="google-auth-button__placeholder " data-theme="filled_blue" data-logo-alignment="center"></div> <!----> </div> </div> <div class="sign-in-modal" data-impression-id="pulse-article_contextual-sign-in-modal_sign-in-modal"> <button class="sign-in-modal__outlet-btn cursor-pointer btn-md btn-primary btn-secondary" data-tracking-client-ingraph data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_outlet-button" data-modal="base-sign-in-modal"> <!----> Sign in </button> <div class> <!----> <div id="base-sign-in-modal" class="modal modal--sign-in" data-outlet="base-sign-in-modal"> <!----> <div class="modal__overlay flex items-center bg-color-background-scrim justify-center fixed bottom-0 left-0 right-0 top-0 opacity-0 invisible pointer-events-none z-[1000] transition-[opacity] ease-[cubic-bezier(0.25,0.1,0.25,1.0)] duration-[0.17s] py-4 " aria-hidden="true"> <section aria-modal="true" role="dialog" aria-labelledby="base-sign-in-modal-modal-header" tabindex="-1" class="max-h-full modal__wrapper overflow-auto p-0 bg-color-surface max-w-[1128px] min-h-[160px] relative scale-[0.25] shadow-sm shadow-color-border-faint transition-[transform] ease-[cubic-bezier(0.25,0.1,0.25,1.0)] duration-[0.33s] focus:outline-0 w-[1128px] mamabear:w-[744px] babybear:w-[360px] rounded-md"> <button class="modal__dismiss btn-tertiary h-[40px] w-[40px] p-0 rounded-full indent-0 sign-in-modal__dismiss absolute right-0 cursor-pointer m-[20px]" aria-label="Dismiss" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_dismiss"> <icon class="sign-in-modal__dismiss-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/gs508lg3t2o81tq7pmcgn6m2"></icon> </button> <div class="modal__main w-full"> <div class="sign-in-modal__screen flex flex-col py-4 w-[513px] babybear:w-full px-3"> <h2 class="sign-in-modal__header font-sans text-display-md text-color-text "> Welcome back </h2> <code id="i18n_sign_in_form_show_text" style="display: none"><!--"Show"--></code> <code id="i18n_sign_in_form_show_label" style="display: none"><!--"Show your LinkedIn password"--></code> <code id="i18n_sign_in_form_hide_text" style="display: none"><!--"Hide"--></code> <code id="i18n_sign_in_form_hide_label" style="display: none"><!--"Hide your LinkedIn password"--></code> <code id="i18n_username_error_empty" style="display: none"><!--"Please enter an email address or phone number"--></code> <code id="i18n_username_error_too_long" style="display: none"><!--"Email or phone number must be between 3 to 128 characters"--></code> <code id="i18n_username_error_too_short" style="display: none"><!--"Email or phone number must be between 3 to 128 characters"--></code> <code id="i18n_password_error_empty" style="display: none"><!--"Please enter a password"--></code> <code id="i18n_password_error_too_short" style="display: none"><!--"The password you provided must have at least 6 characters"--></code> <code id="i18n_password_error_too_long" style="display: none"><!--"The password you provided must have at most 400 characters"--></code> <!----> <form data-id="sign-in-form" action="https://www.linkedin.com/uas/login-submit" method="post" novalidate class="mt-1.5 mb-2"> <input name="loginCsrfParam" value="c2fe7bdc-551d-4078-815d-25dd323706d6" type="hidden"> <div class="flex flex-col"> <div class="mt-1.5" data-js-module-id="guest-input"> <div class="flex flex-col"> <label class="input-label mb-1" for="base-sign-in-modal_session_key"> Email or phone </label> <div class="text-input flex"> <input class="text-color-text font-sans text-md outline-0 bg-color-transparent grow" autocomplete="username" id="base-sign-in-modal_session_key" name="session_key" required data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_sign-in-session-key" data-tracking-client-ingraph type="text"> </div> </div> <p class="input-helper mt-1.5" for="base-sign-in-modal_session_key" role="alert" data-js-module-id="guest-input__message"></p> </div> <div class="mt-1.5" data-js-module-id="guest-input"> <div class="flex flex-col"> <label class="input-label mb-1" for="base-sign-in-modal_session_password"> Password </label> <div class="text-input flex"> <input class="text-color-text font-sans text-md outline-0 bg-color-transparent grow" autocomplete="current-password" id="base-sign-in-modal_session_password" name="session_password" required data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_sign-in-password" data-tracking-client-ingraph type="password"> <button aria-live="assertive" aria-relevant="text" data-id="sign-in-form__password-visibility-toggle" class="font-sans text-md font-bold text-color-action z-10 ml-[12px] hover:cursor-pointer" aria-label="Show your LinkedIn password" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_sign-in-password-visibility-toggle-btn" type="button">Show</button> </div> </div> <p class="input-helper mt-1.5" for="base-sign-in-modal_session_password" role="alert" data-js-module-id="guest-input__message"></p> </div> <input name="session_redirect" value="https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc" type="hidden"> <!----> </div> <div data-id="sign-in-form__footer" class="flex justify-between sign-in-form__footer--full-width"> <a data-id="sign-in-form__forgot-password" class="font-sans text-md font-bold link leading-regular sign-in-form__forgot-password--full-width" href="https://www.linkedin.com/uas/request-password-reset?trk=pulse-article_contextual-sign-in-modal_sign-in-modal_forgot_password" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_forgot_password" data-tracking-will-navigate>Forgot password?</a> <!----> <input name="trk" value="pulse-article_contextual-sign-in-modal_sign-in-modal_sign-in-submit" type="hidden"> <button class="btn-md btn-primary flex-shrink-0 cursor-pointer sign-in-form__submit-btn--full-width" data-id="sign-in-form__submit-btn" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_sign-in-submit-btn" data-tracking-client-ingraph data-tracking-litms type="submit"> Sign in </button> </div> <div class="sign-in-form__divider left-right-divider pt-2 pb-3"> <p class="sign-in-form__divider-text font-sans text-sm text-color-text px-2"> or </p> </div> </form> <div class="w-full max-w-[400px] mx-auto"> <div class="google-auth-button" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_google-auth-button" data-tracking-client-ingraph> <code id="isTermsAndConditionsSkipEnabledAuthButton" style="display: none"><!--true--></code> <p class="linkedin-tc__text text-color-text-low-emphasis text-xs pb-2" data-impression-id="pulse-article_contextual-sign-in-modal_sign-in-modal__button-skip-tc-text"> By clicking Continue to join or sign in, you agree to LinkedIn’s <a href="/legal/user-agreement?trk=pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_user-agreement" target="_blank" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_user-agreement" data-tracking-will-navigate="true">User Agreement</a>, <a href="/legal/privacy-policy?trk=pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_privacy-policy" target="_blank" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_privacy-policy" data-tracking-will-navigate="true">Privacy Policy</a>, and <a href="/legal/cookie-policy?trk=pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_cookie-policy" target="_blank" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_auth-button_cookie-policy" data-tracking-will-navigate="true">Cookie Policy</a>. </p> <div class="google-auth-button__placeholder google-auth-button__placeholder--black-border" data-theme="outline" data-logo-alignment="center"></div> <!----> </div> </div> <!----> <p class="sign-in-modal__join-now m-auto font-sans text-md text-color-text mt-2"> New to LinkedIn? <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=pulse-article_contextual-sign-in-modal_sign-in-modal_join-link" data-tracking-control-name="pulse-article_contextual-sign-in-modal_sign-in-modal_join-link" data-tracking-will-navigate="true" class="sign-in-modal__join-link">Join now</a> </p> </div> </div> <!----> </section> </div> </div> </div> </div> <div class="contextual-sign-in-modal__divider left-right-divider"> <p class="contextual-sign-in-modal__divider-text font-sans text-sm text-color-text px-2"> or </p> </div> </div> <p class="contextual-sign-in-modal__join-now m-auto font-sans text-md text-color-text my-1"> New to LinkedIn? <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=pulse-article_contextual-sign-in-modal_join-link" data-tracking-control-name="pulse-article_contextual-sign-in-modal_join-link" data-tracking-will-navigate="true" class="contextual-sign-in-modal__join-link">Join now</a> </p> <p class="linkedin-tc__text text-color-text-low-emphasis text-xs pb-2 contextual-sign-in-modal__terms-and-conditions m-auto w-[320px] pt-2 babybear:w-full" data-impression-id="linkedin-tc__button-skip-tc-text"> By clicking Continue to join or sign in, you agree to LinkedIn’s <a href="/legal/user-agreement?trk=linkedin-tc_auth-button_user-agreement" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_user-agreement" data-tracking-will-navigate="true">User Agreement</a>, <a href="/legal/privacy-policy?trk=linkedin-tc_auth-button_privacy-policy" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_privacy-policy" data-tracking-will-navigate="true">Privacy Policy</a>, and <a href="/legal/cookie-policy?trk=linkedin-tc_auth-button_cookie-policy" target="_blank" data-tracking-control-name="linkedin-tc_auth-button_cookie-policy" data-tracking-will-navigate="true">Cookie Policy</a>. </p> </div> </div> <!----> </section> </div> </div> </div> </div> <div class="cta-modal overflow-hidden container-raised z-10 fixed bottom-3 right-3 min-h-[56px] p-2 babybear:hidden windows-app-upsell windows-app-upsell--msft flex flex-col p-2 w-[359px] !bg-[#F1F8FA] opacity-90 backdrop-blur-[2px] z-1" data-impression-id="pulse-article_windows-app-upsell_cta-modal" role="dialog" aria-labelledby="cta-modal-header" aria-describedby="cta-modal-subheader"> <div class="windows-app-upsell__linkedin-title-container pt-[6px] mb-1.5 flex align-center"> <icon class="windows-app-upsell__linkedin-bug-icon block w-[21px] h-[21px]" data-svg-class-name="windows-app-upsell__linkedin-bug-icon-svg w-[21px] h-[21px]" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/euqjj7tf5wvr33frd3x1jj9s"></icon> <p class="windows-app-upsell__linkedin-title uppercase text-xs text-color-text-secondary leading-[21px] ml-1"> LinkedIn </p> </div> <p class="windows-app-upsell__title font-sans text-md text-color-text-accent-4-hover font-semibold leading-regular mb-1"> LinkedIn is better on the app </p> <p class="windows-app-upsell__body font-sans text-sm text-color-text-secondary leading-regular"> Don’t have the app? Get it in the Microsoft Store. </p> <a class="windows-app-upsell__cta btn-sm btn-secondary-emphasis mt-2 mb-[6px] w-fit" href="ms-windows-store://pdp/?ProductId=9WZDNCRFJ4Q7&mode=mini&cid=guest_desktop_upsell" data-tracking-client-ingraph data-tracking-control-name="pulse-article_windows-app-upsell_cta" data-tracking-will-navigate> Open the app </a> <button class="cta-modal__dismiss-btn absolute h-4 w-4 p-1 top-2 right-2 hover:cursor-pointer focus:outline focus:outline-2 focus:outline-color-action" data-tracking-control-name="pulse-article_windows-app-upsell_dismiss" aria-label="Dismiss"> <icon class="cta-modal__dismiss-icon block h-2 w-2 onload" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/adzjokfylbe8pvjr9h8iv96mw"></icon> </button> </div> </div> <code id="disableOneTapOnInit" style="display: none"><!--false--></code> <code id="isGuest" style="display: none"><!--true--></code> <code id="isLite" style="display: none"><!--false--></code> <code id="isMobile" style="display: none"><!--false--></code> <code id="articleViewEventData" style="display: none"><!--"{\"articleId\":7144485549532197000,\"articleUrn\":\"urn:li:article:8320689389448750510\",\"authorId\":277135023,\"linkedInArticleUrn\":\"urn:li:linkedInArticle:7144485549532196864\"}"--></code> <code id="articleUrn" style="display: none"><!--"urn:li:linkedInArticle:7144485549532196864"--></code> <code id="legacyArticleUrn" style="display: none"><!--"urn:li:article:8320689389448750510"--></code> <!----> <a href="#main-content" class="skip-link btn-md btn-primary absolute z-11 -top-[100vh] focus:top-0"> Skip to main content </a> <header class="header base-detail-page__header px-mobile-container-padding bg-color-background-container global-alert-offset sticky-header"> <nav class="nav pt-1.5 pb-2 flex items-center justify-between relative flex-nowrap babymamabear:py-1.5 nav--minified-mobile babybear:flex-wrap " aria-label="Primary"> <a href="/?trk=article-ssr-frontend-pulse_nav-header-logo" class="nav__logo-link link-no-visited-state z-1 mr-auto min-h-[52px] flex items-center babybear:z-0 hover:no-underline focus:no-underline active:no-underline babymamabear:mr-3" data-tracking-control-name="article-ssr-frontend-pulse_nav-header-logo" data-tracking-will-navigate> <span class="sr-only">LinkedIn</span> <icon class="nav-logo--inbug flex text-color-brand papabear:hidden mamabear:hidden" data-svg-class-name="h-[34px] w-[34px] babybear:h-[26px] babybear:w-[26px]" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4zqr0f9jf98vi2nkijyc3bex2"></icon> <icon class="block text-color-brand w-[102px] h-[26px] babybear:hidden" data-test-id="nav-logo" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/8fkga714vy9b2wk5auqo5reeb"></icon> </a> <!----> <ul class="top-nav-menu flex items-center babybear:w-full babybear:justify-between babybear:pt-1 justify-start w-max pt-0 overflow-x-auto nav__menu babybear:order-last order-3 ml-auto"> <li class> <a href="https://www.linkedin.com/pulse/topics/home/?trk=article-ssr-frontend-pulse_guest_nav_menu_articles" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_articles" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-8 flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/6ulnj3n2ijcmhej768y6oj1hr"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> Articles </span> </a> </li> <li class> <a href="https://www.linkedin.com/pub/dir/+/+?trk=article-ssr-frontend-pulse_guest_nav_menu_people" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_people" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-8 flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/7kb6sn3tm4cx918cx9a5jlb0"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> People </span> </a> </li> <li class> <a href="https://www.linkedin.com/learning/search?trk=article-ssr-frontend-pulse_guest_nav_menu_learning" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_learning" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-8 flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/8wykgzgbqy0t3fnkgborvz54u"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> Learning </span> </a> </li> <li class> <a href="https://www.linkedin.com/jobs/search?trk=article-ssr-frontend-pulse_guest_nav_menu_jobs" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_jobs" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-8 flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/92eb1xekc34eklevj0io6x4ki"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> Jobs </span> </a> </li> <li class> <a href="https://www.linkedin.com/games?trk=article-ssr-frontend-pulse_guest_nav_menu_games" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_games" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-8 flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/29h8hsjuomfp50lam5ipnc3uh"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> Games </span> </a> </li> <li class> <a href="ms-windows-store://pdp/?ProductId=9WZDNCRFJ4Q7&mode=mini&cid=guest_nav_upsell&trk=article-ssr-frontend-pulse_guest_nav_menu_windows" data-tracking-control-name="article-ssr-frontend-pulse_guest_nav_menu_windows" data-tracking-will-navigate class="top-nav-link flex justify-center items-center min-h-[52px] hover:text-color-text visited:hover:text-color-text hover:no-underline w-[96px] px-1 border-solid border-l-1 border-r-1 babybear:border-r-0 border-color-border-faint flex-col mx-1 babybear:mx-0 text-color-text-secondary visited:text-color-text-secondary"> <icon class="top-nav-link__icon flex h-3 w-3 flex-shrink-0 justify-center " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/admayac2rnonsqhz9v3rzwcyu"> </icon> <span class="top-nav-link__label-text font-sans text-xs leading-regular text-center font-regular"> Get the app </span> </a> </li> </ul> <div class="nav__cta-container order-3 flex gap-x-1 justify-end min-w-[100px] flex-nowrap flex-shrink-0 babybear:flex-wrap flex-2 babymamabear:min-w-[50px] "> <!----> <a class="nav__button-tertiary btn-md btn-tertiary" href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_nav-header-join" data-tracking-control-name="article-ssr-frontend-pulse_nav-header-join" data-test-live-nav-primary-cta data-tracking-will-navigate> Join now </a> <a class="nav__button-secondary btn-secondary-emphasis btn-md" href="https://www.linkedin.com/uas/login?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&fromSignIn=true&trk=article-ssr-frontend-pulse_nav-header-signin" data-tracking-control-name="article-ssr-frontend-pulse_nav-header-signin" data-tracking-will-navigate> Sign in </a> <a aria-label="Sign in" class="nav__link-person papabear:hidden mamabear:hidden" data-tracking-control-name="article-ssr-frontend-pulse_nav-header-signin" data-tracking-will-navigate href="https://www.linkedin.com/uas/login?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&fromSignIn=true&trk=article-ssr-frontend-pulse_nav-header-signin"> <img class="inline-block relative rounded-[50%] w-4 h-4 bg-color-entity-ghost-background" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt> </a> </div> <!----> <!----> </nav> </header> <!----> <!----> <main class="main papabear:flex papabear:w-content-max-w papabear:mx-auto papabear:pt-desktop-content-top-margin mamabear:pt-desktop-content-top-margin " id="main-content" role="main"> <section class="core-rail mx-auto papabear:w-core-rail-width mamabear:max-w-[790px] babybear:max-w-[790px]"> <div class="details mx-details-container-padding"> <!----> <code id="isGuest" style="display: none"><!--true--></code> <code id="memberUrn" style="display: none"><!--"urn:li:member:0"--></code> <code id="isNbaRecommendedArticlesDeeplinkEnabled" style="display: none"><!--"true"--></code> <code id="isDynamicTextareaEnabled" style="display: none"><!--"true"--></code> <article class="article-main relative flex-grow pulse"> <!----> <figure class="cover-img"> <!----> <div class="cover-img__image-frame relative w-full overflow-hidden pb-[calc((134/782)*100%)]"> <div class="cover-img__image-position absolute top-0 right-0 bottom-0 left-0 "> <img class="cover-img__image relative w-full h-full object-cover" src="https://media.licdn.com/dms/image/v2/D5612AQHmEjzSPK73LA/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1703378366254?e=2147483647&v=beta&t=7t35H6nhecAQtSpxcltns6hnpFdLAkNpFOKXCinyxF8" fetchpriority="high" data-embed-id="cover-image" alt="Recursion Theory and Recursive Functions"> </div> </div> <!----> </figure> <header> <section class="core-section-container relative my-3"> <h1 class="pulse-title text-display-md text-color-text lg:text-display-lg font-bold w-11/12">Recursion Theory and Recursive Functions</h1> <div class="ellipsis-menu absolute right-0 top-0"> <div class="collapsible-dropdown flex items-center relative hyphens-auto"> <button class="ellipsis-menu__trigger collapsible-dropdown__button btn-md btn-tertiary cursor-pointer !py-[6px] !px-1 flex items-center rounded-[50%] " aria-expanded="false" aria-label="Open menu" data-tracking-control-name="article-ssr-frontend-pulse_ellipsis-menu-trigger" tabindex="0"> <icon class="ellipsis-menu__trigger-icon m-0 p-0 centered-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/671xosfpvk4c0kqtyl87hashi"></icon> </button> <ul class="collapsible-dropdown__list hidden container-raised absolute w-auto overflow-y-auto flex-col items-stretch z-1 bottom-auto top-[100%]" role="menu" tabindex="-1"> <li class="ellipsis-menu__item border-t-1 border-solid border-color-border-low-emphasis first-of-type:border-none flex"> <a href="/uas/login?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_ellipsis-menu-semaphore-sign-in-redirect&guestReportContentType=PONCHO_ARTICLE&_f=guest-reporting" data-tracking-control-name="article-ssr-frontend-pulse_ellipsis-menu-semaphore-sign-in-redirect" data-tracking-will-navigate data-item-type="semaphore" data-semaphore-content-type="PONCHO_ARTICLE" data-semaphore-content-urn="urn:li:linkedInArticle:7144485549532196864" data-semaphore-tracking-prefix="article-ssr-frontend-pulse_ellipsis-menu-semaphore" data-is-logged-in="false" data-modal="semaphore__toggle" class="semaphore__toggle visited:text-color-text-secondary ellipsis-menu__semaphore ellipsis-menu__item-button flex items-center w-full p-1 cursor-pointer font-sans text-sm font-bold link-styled focus:link-styled link:no-underline active:bg-color-background-container-tint focus:bg-color-background-container-tint hover:bg-color-background-container-tint outline-offset-[-2px]"> <!----> <icon class="ellipsis-menu__item-icon text-color-text h-[24px] w-[24px] mr-1" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/iq0x9q37wj214o129ai1yjut"> </icon> Report this article </a> <!----> </li> <!----> </ul> <!----> </div> </div> <div class="core-section-container__content break-words"> <div class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-main-card flex flex-wrap py-2 pr-2 babybear:pr-0 base-main-card--link publisher-author-card"> <a class="base-card__full-link absolute top-0 right-0 bottom-0 left-0 p-0 z-[2]" href="https://www.linkedin.com/in/sabonchi" data-tracking-control-name="article-ssr-frontend-pulse_publisher-author-card" data-tracking-will-navigate> <span class="sr-only"> Hasanain Alsabonchi </span> </a> <img class="inline-block relative rounded-[50%] w-6 h-6 " data-delayed-url="https://media.licdn.com/dms/image/v2/D5603AQFsCDzWBqBSxQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1715275569997?e=2147483647&v=beta&t=PIp7t8FBMvhGJzRggkWkIZU_noERJENBCVb4jrSBHS0" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Hasanain Alsabonchi"> <div class="base-main-card__info self-center ml-1 flex-1 relative break-words papabear:min-w-0 mamabear:min-w-0 babybear:w-full "> <!----> <h3 class="base-main-card__title font-sans text-[18px] font-bold text-color-text overflow-hidden "> Hasanain Alsabonchi </h3> <h4 class="base-main-card__subtitle body-text text-color-text overflow-hidden "> Software Engineer | Previously SWE @ NASA | M.S. in Computer Science. </h4> <!----> <div class="body-text text-color-text-low-emphasis base-main-card__metadata"> Published Dec 27, 2023 </div> <!----> </div> <div class="base-main-card__ctas z-[3] self-center ml-3 babybear:ml-1 babybear:self-start"> <a class="base-main-card__cta btn-sm btn-secondary" href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_publisher-author-card" data-tracking-control-name="article-ssr-frontend-pulse_publisher-author-card" data-tracking-will-navigate> + Follow </a> </div> </div> </div> </section> </header> <div data-test-id="article-content-blocks"> <!----> <div class="article-main__content" data-test-id="publishing-text-block"> <h3><span class>December 2023, Hasanain Alsabonchi and Julien Chaffraix.</span><!----></h3> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Recursion theory is a subfield of Computer Science. Almost everything in programming has a mathematical foundation, including sets, functions, arrays, and maps. The mathematical definition of recursion involves defining an object (a function, sequence, or structure) in terms of itself or a part of itself. One such example is factorial. The function </span><span class="italic">f </span><span class>(</span><span class="italic">n</span><span class>−1) represents a subproblem of the original problem </span><span class="italic">f </span><span class>(</span><span class="italic">n</span><span class>), and </span><span class="italic">n</span><span class> - 1 is a step toward reaching the base case. The recursive definition of a recursive function consists of two parts:</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class> <ol> <li><span class>One or more base cases</span><!----></li> <li><span class>The recursive step</span><!----></li> </ol> </span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>A factorial of a number 'N' is the product of all integers between 1 and </span><span class="italic">N</span><span class>. For example, if '</span><span class="italic">N</span><span class>' equals 5, then the factorial of '</span><span class="italic">N</span><span class>' would be 5 </span><span class="italic"> 4 </span><span class> 3 </span><span class="italic"> 2 </span><span class> 1, which equals to 120. A recursive definition can be used to solve a problem mathematically or programmatically. The factorial function 'Fact(n)' can be defined recursively as follows:</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class> <ol> <li><span class>Base Case: </span><span class="italic">f </span><span class>(0) = 1</span><!----></li> <li><span class>Recursive Step: </span><span class="font-[700]">(for n > 0)</span><span class> </span><span class="italic">f </span><span class>(</span><span class="italic">n</span><span class>) = n * </span><span class="italic"> </span><span class>(</span><span class="italic">n</span><span class>−1) </span><!----></li> </ol> </span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="font-[700]">For instance</span><span class>:</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(5) = 5 * </span><span class="italic">f </span><span class>(4)</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(4) = 4 * </span><span class="italic">f </span><span class>(3)</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(3) = 3 *</span><span class="italic">f </span><span class>(2)</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(2) = 2 *</span><span class="italic">f </span><span class>(1)</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(1) = 1 * </span><span class="italic">f </span><span class>(0) (where </span><span class="italic">f </span><span class>(0) = 1)</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>The Fibonacci sequence is a good example of a recursive relation with two base cases.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class> <ol> <li><span class>Base Case: </span><span class="italic">f </span><span class>(0) = 0 or </span><span class="italic">f </span><span class>(1) = 1</span><!----></li> <li><span class>Recursive Step: </span><span class="font-[700]">(for n > 1)</span><span class> </span><span class="italic">f </span><span class>(n) = </span><span class="italic">f </span><span class>(n−1) + </span><span class="italic">f </span><span class>(n−2)</span><!----></li> </ol> </span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>For instance, to find the 4th Fibonacci term:</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(0) = 0</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(1) = 1</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(2) = f(0) + </span><span class="italic">f </span><span class>(1) ⇒ 1</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class="italic">f </span><span class>(3) = f(2) +</span><span class="italic">f </span><span class>(1) ⇒ 2</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>The base case serves as a way to break out of the recursion. A recursive function should reach and execute one or more base cases to avoid infinite recursion. For tree problems, you might see 'if (node == null) return,' which is a typical base case. The recursive step, on the other hand, is where a function calls itself with a typically smaller input size/value and utilizes the result of the recursive call to help solve the current problem. It can involve multiple recursive calls, as seen in problems like the Fibonacci sequence.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Having explored recursion, let's now examine and contrast recursive algorithms with their iterative counterparts.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <h3><span class>Recursion vs. Iterative Programming</span><!----></h3> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Recursion allows solving complex programming tasks concisely. Inversely, an iterative approach is less concise as we repeat a single statement or a block of statements a certain number of times or until a specific condition is met. The Church-Turing thesis proves that what is computable by a recursive function is computable by an iterative one and vice versa. This is because recursion can be implemented using loops and a stack. Recursive algorithms have a space complexity, specifically in non-tail recursion, which is directly related to the maximum depth of the function call stack during execution. However, the iterative approach typically has no associated space complexity unless it adds an extra stack. The following code computes n! (n factorial) using two different approaches</span><!----> </p> </div> <!----><!----> <div class="flex flex-col mt-2" data-test-id="publishing-image-block" rel="ugc"> <figure> <img class="lazy-load block w-full" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQEwSdNLkmLcYg/article-inline_image-shrink_400_744/article-inline_image-shrink_400_744/0/1703380176616?e=2147483647&v=beta&t=B2D_M2ZjwNhcZ-5hF8JUJwX0kZ8z4A6yS6IvTQCp-lM"> <!----> </figure> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>One important component of recursion is the stack. Let’s look at how the stack is managed.</span><!----> </p> </div> <div class="inline-articles bg-color-surface-new border-hidden rounded-sm p-1 mx-auto my-1.5 mamabear:w-2/3 inline-articles__after"> <h2 class="text-xl font-medium ml-1.5 my-1 text-color-text mamabear:text-center">Recommended by LinkedIn</h2> <div class="flex flex-wrap mx-0.5 babybear:mx-1.5"> <div class="content-author-card flex flex-col max-w-[270px] h-auto rounded-md border-1 border-system-gray-30 border-solid pb-1.5 inline-article mx-auto my-1 border-hidden papabear:w-[219px] babybear:min-w-full mamabear:min-w-full h-auto bg-color-canvas-tint"> <a class="no-underline" data-tracking-control-name="inline-recommended-articles" data-tracking-will-navigate href="https://www.linkedin.com/pulse/data-science-20-andriy-burkov-dixxe"> <img class="content-image w-full h-[150px] bg-cover rounded-t-md object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D4E12AQE3XEBCysX3Xg/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1707793787632?e=2147483647&v=beta&t=So5wqqLDVx_C-Mrzj-ysIug43jAkepHshpiSYFDlc_8"> <div class="inline-article-title text-md text-color-text font-bold pl-2 pt-1 pr-1.5">Data Science #20</div> <div class="inline-article-meta px-2 mt-1 font-sans text-xs font-normal text-color-text-low-emphasis h-full"> <span class="inline-article-author pt-0.5"> Andriy Burkov </span> <span class="before:middot pt-0.5 inline-article-published-date"> 10 months ago </span> </div> </a> <!----><!----> </div> <div class="content-author-card flex flex-col max-w-[270px] h-auto rounded-md border-1 border-system-gray-30 border-solid pb-1.5 inline-article mx-auto my-1 border-hidden papabear:w-[219px] babybear:min-w-full mamabear:min-w-full h-auto bg-color-canvas-tint"> <a class="no-underline" data-tracking-control-name="inline-recommended-articles" data-tracking-will-navigate href="https://www.linkedin.com/pulse/introduction-random-walks-brownian-motions-related-vincent-granville"> <img class="content-image w-full h-[150px] bg-cover rounded-t-md object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQFAHpHcTSkBng/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1676307183968?e=2147483647&v=beta&t=zABJ8nO_jzQC1SvQ7PP3wwaGX6TSdPrD2I_AOZCgE-g"> <div class="inline-article-title text-md text-color-text font-bold pl-2 pt-1 pr-1.5">Introduction to Random Walks, Brownian Motions, and…</div> <div class="inline-article-meta px-2 mt-1 font-sans text-xs font-normal text-color-text-low-emphasis h-full"> <span class="inline-article-author pt-0.5"> Vincent Granville </span> <span class="before:middot pt-0.5 inline-article-published-date"> 1 year ago </span> </div> </a> <!----><!----> </div> <div class="content-author-card flex flex-col max-w-[270px] h-auto rounded-md border-1 border-system-gray-30 border-solid pb-1.5 inline-article mx-auto my-1 border-hidden papabear:w-[219px] babybear:min-w-full mamabear:min-w-full h-auto bg-color-canvas-tint"> <a class="no-underline" data-tracking-control-name="inline-recommended-articles" data-tracking-will-navigate href="https://www.linkedin.com/pulse/understanding-bubble-sort-algorithm-amr-saafan"> <img class="content-image w-full h-[150px] bg-cover rounded-t-md object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D4D12AQHFc9BqwVjIlg/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1697555238349?e=2147483647&v=beta&t=3IqsHTpHkZodgRfWG8cCiGQ0QzHmZWfNlpxpnX_-VqY"> <div class="inline-article-title text-md text-color-text font-bold pl-2 pt-1 pr-1.5">Understanding the Bubble Sort Algorithm</div> <div class="inline-article-meta px-2 mt-1 font-sans text-xs font-normal text-color-text-low-emphasis h-full"> <span class="inline-article-author pt-0.5"> Amr Saafan </span> <span class="before:middot pt-0.5 inline-article-published-date"> 1 year ago </span> </div> </a> <!----><!----> </div> </div> </div> <!----> <div class="article-main__content" data-test-id="publishing-text-block"> <h3><span class>Stack Memory Management </span><!----></h3> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>When an operating system (OS) runs a program, the loader first loads the program’s data and code into the main memory. This enables the CPU to access and execute the program's instructions and work with its data. The stack plays a central role in managing a program's execution. One crucial component of stack memory operations is the Stack Pointer (SP), a CPU register that indicates the top of the stack, The Stack Pointer is automatically adjusted each time a stack operation is executed. The stack memory is pre-allocated at program start because, by definition, it must be contiguous in memory. This also means that the stack memory is fixed throughout the lifetime of the program.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <h3><span class>Stack Register</span><!----></h3> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>'ebp’ and ‘esp’ are x86 architecture registers used to manage the stack. ‘esp’ is the stack pointer, used to manage the stack. It is adjusted to allocate space for local variables and to pass arguments to functions. ‘ebp’ is the base pointer, keeping track of the start of the current stack frame. It is sometimes used to access parameters and local variables. Now, let's examine the following recursive program.</span><!----> </p> </div> <!----><!----> <div class="flex flex-col mt-2" data-test-id="publishing-image-block" rel="ugc"> <figure> <img class="lazy-load block w-full" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQEyp5QHB2GvRQ/article-inline_image-shrink_1000_1488/article-inline_image-shrink_1000_1488/0/1703378796186?e=2147483647&v=beta&t=S6vI5bFtiScSzku8ayW80Oia-TP-mCIRzNaIUl1PDWE"> <!----> </figure> </div> <!----><!----> <div class="flex flex-col mt-2" data-test-id="publishing-image-block" rel="ugc"> <figure> <img class="lazy-load block w-full" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQEGAkHSMMk99A/article-inline_image-shrink_1000_1488/article-inline_image-shrink_1000_1488/0/1703378831378?e=2147483647&v=beta&t=dakQfLFNHGrKaOJhWaD3Mc8jRC2oeGc-HU-hc8g1XFs"> <figcaption class="mt-[0.8rem] text-center text-sm font-normal text-color-text-low-emphasis" data-test-id="publishing-image-block-caption"> <span class> The diagram shows how the snippet code below is executed inside the stack memory.</span><!----> </figcaption> </figure> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Inside 'foo()', just before calling 'bar()', we need to pass two arguments to the function. This is accomplished by pushing them onto the stack, as illustrated in Figure 1. The CPU is only aware of the next instruction to execute, stored in a register known as the Instruction Pointer (IP). To return from a function call, we must save the next instruction to be executed after the call. Therefore, this instruction is pushed to the stack in Figure 2, just before calling 'bar()' (the call is achieved by updating IP to the beginning of the function ‘bar()’).</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Upon returning from 'bar()', the program must revert the frame to the state as it was in Figure 1 (this operation is referred to as "unwinding" the stack). To achieve this, we save the stack base pointer (ebp) in the stack, just before updating it for the new function. When returning, the compiler will generate code that resets the stack pointer (esp) to the current ebp and then restores the previously pushed ebp. Figure 3 represents the code immediately after saving the caller’s ebp.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Finally, the two variables, 'x' and 'y' in 'bar()', are pushed to the stack, as shown in Figure 4.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class> Each programming language has its distinct calling convention and is designed to work with various platforms (CPU architecture + operating system). Understanding the call stack is fundamental when working with function calls and recursion. When a function is called, whether it's a normal function call or a recursive call, the program's execution environment creates a new stack frame (also known as an activation record). This stack frame contains information such as local variables, function parameters, and the return address. Since it operates on the Last In, First Out (LIFO) principle, storing data on the stack is called 'pushing' (using the PUSH instruction in x86 assembly), and restoring data from the stack is called 'popping' (using the POP instruction). These operations are common in assembly or low-level languages.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <!----><br> </p> </div> <!----><!----> <div class="flex flex-col mt-2" data-test-id="publishing-image-block" rel="ugc"> <figure> <img class="lazy-load block w-full" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQG4pIyiURWykg/article-inline_image-shrink_400_744/article-inline_image-shrink_400_744/0/1703379562411?e=2147483647&v=beta&t=zOL5oySA6MKN8pYs87vKow-EVvF2N3EBKfJgTOgPxms"> <figcaption class="mt-[0.8rem] text-center text-sm font-normal text-color-text-low-emphasis" data-test-id="publishing-image-block-caption"> <span class> </span><!----> </figcaption> </figure> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>In the case of recursive functions, each recursive call creates a new stack frame on top of the previous one. The call stack ensures that the program can keep track of its execution flow and return to the appropriate caller after a function completes its task. </span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>When a function encounters a return statement or throws an exception, it exits the current recursive routine with its current inputs. As the function completes its execution, this information is popped from the stack.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Tree problems are a type of problems that can be solved neatly using recursion. Let's look at one final example to see how the stack gets updated.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>The problem we’re looking at is whether a tree is balanced. This is the </span><span class><a href="https://www.linkedin.com/redir/redirect?url=https%3A%2F%2Fleetcode%2Ecom%2Fproblems%2Fbalanced-binary-tree%2F&urlhash=-QUa&trk=article-ssr-frontend-pulse_little-text-block" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_little-text-block" data-tracking-will-navigate data-test-link>LeetCode exercise<!----></a></span><span class> if you’re curious. A common solution is to recurse on each subtree and track whether each subtree is balanced. If one subtree is unbalanced, we can propagate the information up to the root (which is modeled as the magic constant -1 in the following code snippets):</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Here is an example of the function calls involved and their return values:</span><!----> </p> </div> <!----><!----> <div class="flex flex-col mt-2" data-test-id="publishing-image-block" rel="ugc"> <figure> <img class="lazy-load block w-full" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQGSms-lzhg8rA/article-inline_image-shrink_1000_1488/article-inline_image-shrink_1000_1488/0/1703380030081?e=2147483647&v=beta&t=KGn-9pM4SCTBBK38w5OB-eZT-3Gujm_v0Zj-0lQNG70"> <!----> </figure> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>Now if we look at the hardware stack, the following diagram shows the different states that it will go through as we invoke ‘height’. The sequence is similar to the previous example above pushing the return address, then the previous 'ebp' then any arguments, and finally the local variable.</span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>In summary, recursion is a powerful programming technique, often used for tasks like calculating factorials. It differs from iterative approaches but can achieve the same results. However, recursion can be space-inefficient. Stack memory is crucial in program execution, especially in tracking function calls and recursion. Understanding the call stack and its management is essential for programmers. Recursion, while elegant, can be challenging to master.</span><!----> </p> </div> <!----><!----> <hr data-test-id="publishing-divider-block" class="my-[3.2rem] mx-auto h-[1px] border-0 bg-black-a16"> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>¹ Stackoverflow </span><span class><a href="https://www.linkedin.com/redir/redirect?url=https%3A%2F%2Fstackoverflow%2Ecom%2Fquestions%2F931762%2Fcan-every-recursion-be-converted-into-iteration&urlhash=VRXA&trk=article-ssr-frontend-pulse_little-text-block" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_little-text-block" data-tracking-will-navigate data-test-link>Can every recursion be converted into iteration?<!----></a></span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>² Tail Recursion </span><span class><a href="https://en.wikipedia.org/wiki/Tail_call?trk=article-ssr-frontend-pulse_little-text-block" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_little-text-block" data-tracking-will-navigate data-test-link>Tail Call<!----></a></span><!----> </p> </div> <!----><!----> <div class="article-main__content" data-test-id="publishing-text-block"> <p> <span class>³ Calling Convention </span><span class><a href="https://en.wikipedia.org/wiki/Calling_convention?trk=article-ssr-frontend-pulse_little-text-block" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_little-text-block" data-tracking-will-navigate data-test-link>https://en.wikipedia.org/wiki/Calling_convention¥<!----></a></span><!----> </p> </div> <!----> </div> <!----><!----><!----><!----><!----> <!----> </article> <!----> <code id="ugcPostUrl" style="display: none"><!--"https://www.linkedin.com/feed/update/urn:li:ugcPost:7145866253088284672"--></code> <code id="ugcPost" style="display: none"><!--"urn:li:ugcPost:7145866253088284672"--></code> <code id="disableLinkedinShareRedirectLink" style="display: none"><!--true--></code> <code id="ugcPostUrn" style="display: none"><!--"urn:li:ugcPost:7145866253088284672"--></code> <code id="signInUrl" style="display: none"><!--"https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc"--></code> <!----> <div class="article-social-activity z-[201] x-social-activity-wrapper xs:sticky bottom-0 flex justify-center border-t-1 border-solid border-color-border-faint bg-color-background-container " data-impression-id="article-ssr-frontend-pulse_x-social-details"> <!----> <div class="x-social-activity social-details x-social-activity-left flex flex-wrap w-full max-w-x-article-width-small justify-between lg:max-w-x-article-width"> <div class="flex x-social-activity-left flex-wrap"> <code id="i18n_reaction_selection_state" style="display: none"><!--"%reactionType% %selectionState%"--></code> <div class="reactions-menu flex flex-row relative items-center justify-center select-none [-webkit-user-select:none] pointer-events-auto" data-feed-control="article-ssr-frontend-x-article_x-social-details_like-toggle_reactions-cta"> <a class="reactions-menu__link text-color-text social-action-bar__button relative h-6 cursor-pointer w-full" href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_like-toggle_like-cta" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_like-toggle_reactions-cta" data-parent-urn="urn:li:ugcPost:7145866253088284672" data-tracking-will-navigate data-feed-control="article-ssr-frontend-x-article_x-social-details_like-toggle_reactions-cta"> <!----> <div class="like-button-default flex flex-row items-center "> <icon class="social-action-bar__icon" data-svg-class-name="social-action-bar__icon--svg" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/3djuegvxjnk75fm1bl5ugf342"> </icon> <span class="social-action-bar__button-text">Like</span> </div> </a> </div> <template id="selected-reaction"> <div> <div class="selected-reaction--LIKE flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Like" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/3tsxb73co15a9ze36f0y0vmng"> <span class="social-action-bar__button-text">Like</span> </div> <div class="selected-reaction--PRAISE flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Celebrate" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5tec0l9hykk5gezv56e7coyow"> <span class="social-action-bar__button-text">Celebrate</span> </div> <div class="selected-reaction--APPRECIATION flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Support" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/7savup3gmhirulv2h5v8snx2x"> <span class="social-action-bar__button-text">Support</span> </div> <div class="selected-reaction--EMPATHY flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Love" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/f4lj1wks3jt476fe5defirzg9"> <span class="social-action-bar__button-text">Love</span> </div> <div class="selected-reaction--INTEREST flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Insightful" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/br7ludovnq3n7137fvqsqwljx"> <span class="social-action-bar__button-text">Insightful</span> </div> <div class="selected-reaction--ENTERTAINMENT flex flex-row items-center"> <img class="inline-block align-middle relative w-3 h-3 mr-1 babybear:mr-0 mb-0.5" alt="Funny" aria-hidden="true" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/6ga7ypv66xprsgreohwklur3y"> <span class="social-action-bar__button-text">Funny</span> </div> </div> </template> <div class="relative flex select-none flex-row items-center justify-center"> <a class="social-action-bar__button !rounded-none " href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_comment-cta" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comment-cta" data-tracking-will-navigate> <icon class="social-action-bar__icon" data-svg-class-name="social-action-bar__icon--svg" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/1p9aa0o2ms48w7ipecq9amsti"> </icon> <span class="social-action-bar__button-text"> Comment </span> </a> </div> <code id="i18n_copy_cta_message_success" style="display: none"><!--"Link copied to clipboard."--></code> <code id="i18n_copy_cta_message_error" style="display: none"><!--"Something went wrong while copying to clipboard."--></code> <div class="collapsible-dropdown flex items-center relative hyphens-auto social-share inline-block relative select-none x-social-share " data-share-message="Share" data-share-url="https://www.linkedin.com/pulse/recursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc?utm_source=share&utm_medium=guest_desktop" data-feed-control="article-ssr-frontend-x-article_x-social-details_social-share-intent_social-share_main_button" data-feed-action-category="EXPAND" data-feed-action-type="openShareMenu"> <!----> <ul class="collapsible-dropdown__list hidden container-raised absolute w-auto overflow-y-auto flex-col items-stretch z-1 bottom-[100%] top-auto" role="menu" tabindex="-1"> <li> <button data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_social-share-intent_social-share_copy" class="social-share__item social-share-item" data-share-service="copy"> <icon class="social-share__item-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/aup4g97pdky3ff73gv9lyhjvx"></icon> <span class="social-share__item-text pl-1">Copy</span> </button> </li> <li> <button data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_social-share-intent_social-share_linkedin" class="social-share__item social-share-item" data-share-service="linkedin"> <icon class="social-share__item-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/2uoxvguhsfspfnmr6tvfuyw4y" data-svg-class-name="text-color-text"></icon> <span class="social-share__item-text pl-1">LinkedIn</span> </button> </li> <li> <button data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_social-share-intent_social-share_facebook" class="social-share__item social-share-item" data-share-service="facebook"> <icon class="social-share__item-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/5xkjpykqkamtr6skk0vodqwd2"></icon> <span class="social-share__item-text pl-1">Facebook</span> </button> </li> <li> <button data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_social-share-intent_social-share_twitter" class="social-share__item social-share-item" data-share-service="twitter"> <icon class="social-share__item-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4bmfmbwr1b97362o29qmjo1zj"></icon> <span class="social-share__item-text pl-1">Twitter</span> </button> </li> <!----> </ul> <button aria-expanded="false" class="social-share__button social-share__button-square social-share-button social-action-bar__button social-share-button--square " aria-label data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_social-share-intent_social-share_main_button"> <icon class="social-share__button-icon " data-delayed-url="https://static.licdn.com/aero-v1/sc/h/852gyy4s01pfis5qf9k99s6d2" data-svg-class-name="social-share-button-icon social-action-bar__icon--svg "></icon> <span class="social-share__button-text-square social-action-bar__button-text "> Share </span> </button> </div> </div> <code id="i18n_reaction_singular" style="display: none"><!--"%numReactions% Reaction"--></code> <code id="i18n_reactions_plural" style="display: none"><!--"%numReactions% Reactions"--></code> <div class="flex items-center font-sans text-sm babybear:text-xs" data-sap-comment-urn="urn:li:ugcPost:7145866253088284672"> <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_likes-count_social-actions-reactions" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_likes-count_social-actions-reactions" data-tracking-will-navigate class="flex items-center font-normal text-color-text-low-emphasis no-underline visited:text-color-text-low-emphasis my-1" aria-label="11 Reactions" data-test-id="social-actions__reactions" data-id="social-actions__reactions" data-num-reactions="11" data-singular="%numReactions%" data-plural="%numReactions%" data-entity-urn="urn:li:ugcPost:7145866253088284672" tabindex="0"> <img alt data-reaction-type="LIKE" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/bn39hirwzjqj18ej1fkz55671" height="16px" width="16px"> <img alt data-reaction-type="EMPATHY" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/asiqslyf4ooq7ggllg4fyo4o2" height="16px" width="16px"> <img alt data-reaction-type="INTEREST" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/a0e8rff6djeoq8iympcysuqfu" height="16px" width="16px"> <span aria-hidden="true" class="font-normal ml-0.5" data-test-id="social-actions__reaction-count"> 11 </span> </a> <code id="social-actions__reaction-image-APPRECIATION" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/cyfai5zw4nrqhyyhl0p7so58v"--></code> <!----><!----> <code id="social-actions__reaction-image-EMPATHY" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/asiqslyf4ooq7ggllg4fyo4o2"--></code> <code id="social-actions__reaction-image-ENTERTAINMENT" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/22ifp2etz8kb9tgjqn65s9ics"--></code> <!----> <code id="social-actions__reaction-image-INTEREST" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/a0e8rff6djeoq8iympcysuqfu"--></code> <code id="social-actions__reaction-image-LIKE" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/bn39hirwzjqj18ej1fkz55671"--></code> <code id="social-actions__reaction-image-MAYBE" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/cryzkreqrh52ja5bc6njlrupa"--></code> <code id="social-actions__reaction-image-PRAISE" style="display: none"><!--"https://static.licdn.com/aero-v1/sc/h/2tzoeodxy0zug4455msr0oq0v"--></code> <!----><!----> <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_likes-count_social-actions-comments" target="_blank" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_likes-count_social-actions-comments" data-tracking-will-navigate class="flex items-center font-normal text-color-text-low-emphasis no-underline visited:text-color-text-low-emphasis before:middot my-1" data-test-id="social-actions__comments" data-id="social-actions__comments" data-num-comments="2" data-singular="%numComments% Comment" data-plural="%numComments% Comments" data-entity-urn="urn:li:ugcPost:7145866253088284672"> 2 Comments </a> <!----> </div> </div> </div> <div class="comments__container"> <div class="comments"> <!----> <!----> <section class="comment flex grow-1 items-stretch leading-[16px] comment-with-action my-1.5"> <div> <a href="https://at.linkedin.com/in/anton-kuscher-859172331?trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment_actor-image" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_actor-image" data-tracking-will-navigate> <img class="inline-block relative rounded-[50%] w-4 h-4 " data-delayed-url="https://media.licdn.com/dms/image/v2/D4D03AQE47ATw3xi-sg/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1727900695292?e=2147483647&v=beta&t=dfw8XLCZyXw_Po92kfkHLgy6Oqp5020nJcLFvDl3XVM" data-ghost-classes="bg-color-entity-ghost-background" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2" alt="Anton Kuscher"> </a> </div> <div class="w-full min-w-0"> <div class="comment__body ml-0.5 mb-1 pt-1 pr-1.5 pb-1 pl-1.5 rounded-[8px] rounded-tl-none relative"> <div class="comment__header flex flex-col"> <a class="text-sm link-styled no-underline leading-open comment__author truncate pr-6" href="https://at.linkedin.com/in/anton-kuscher-859172331?trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment_actor-name" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_actor-name" data-tracking-will-navigate> Anton Kuscher </a> <p class="!text-xs text-color-text-low-emphasis leading-[1.33333] mb-0.5 truncate comment__author-headline">Student at Fachhochschule Technikum Wien</p> <span class="text-xs text-color-text-low-emphasis comment__duration-since absolute right-6 top-1 inline-block"> 2mo </span> <div class="ellipsis-menu absolute right-0 top-0 !mr-0.5 babybear:!-top-0.5" data-test-id="comment__ellipsis-menu" data-feed-action="show-comment-dropdown"> <div class="collapsible-dropdown flex items-center relative hyphens-auto"> <button class="ellipsis-menu__trigger collapsible-dropdown__button btn-md btn-tertiary cursor-pointer !py-[6px] !px-1 flex items-center rounded-[50%] ellipsis-menu__trigger--small w-[32px] h-[32px] babybear:rotate-90 mamabear:!h-4 mamabear:!min-h-[32px] papabear:!h-4 papabear:!min-h-[32px]" aria-expanded="false" aria-label="Open menu" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_ellipsis-menu-trigger" tabindex="0"> <icon class="ellipsis-menu__trigger-icon m-0 p-0 centered-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/c26vw8uiog92lvrqov98hvbxr"></icon> </button> <ul class="collapsible-dropdown__list hidden container-raised absolute w-auto overflow-y-auto flex-col items-stretch z-1 bottom-auto top-[100%]" role="menu" tabindex="-1"> <li class="ellipsis-menu__item border-t-1 border-solid border-color-border-low-emphasis first-of-type:border-none flex"> <a href="/uas/login?session_redirect=https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment_ellipsis-menu-semaphore-sign-in-redirect&guestReportContentType=COMMENT&_f=guest-reporting" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_ellipsis-menu-semaphore-sign-in-redirect" data-tracking-will-navigate data-item-type="semaphore" data-semaphore-content-type="COMMENT" data-semaphore-content-urn="urn:li:comment:(urn:li:ugcPost:7145866253088284672,7247343289803165698)" data-semaphore-tracking-prefix="article-ssr-frontend-pulse_x-social-details_comments-action_comment_ellipsis-menu-semaphore" data-is-logged-in="false" data-modal="semaphore__toggle" class="semaphore__toggle visited:text-color-text-secondary ellipsis-menu__semaphore ellipsis-menu__item-button flex items-center w-full p-1 cursor-pointer font-sans text-sm font-bold link-styled focus:link-styled link:no-underline active:bg-color-background-container-tint focus:bg-color-background-container-tint hover:bg-color-background-container-tint outline-offset-[-2px]"> <!----> <icon class="ellipsis-menu__item-icon text-color-text h-[24px] w-[24px] mr-1" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/iq0x9q37wj214o129ai1yjut"> </icon> Report this comment </a> <!----> </li> <!----> </ul> <!----> </div> </div> </div> <div class="attributed-text-segment-list__container relative mt-1 mb-1.5 babybear:mt-0 babybear:mb-0.5"> <p class="attributed-text-segment-list__content text-color-text !text-sm whitespace-pre-wrap break-words comment__text babybear:mt-0.5" dir="ltr">You might want to correct the recursive function to calculate factorials. The if statement needs to check for n<=0 instead of n<0. Otherwise it will return 0 for every positive number. :D</p> <!----> </div> <!----> <!----> </div> <div class="comment__actions flex flex-row flex-wrap items-center ml-2" aria-label="Comment Controls"> <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment_like" class="comment__action inline-block font-sans text-xs text-color-text-low-emphasis cursor-pointer" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_like" data-tracking-will-navigate> <div class="flex flex-row items-center "> <icon class="action-btn__icon w-2 mr-0.5" data-svg-class-name="action-btn__icon--svg" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/70k0g8kmgdfjjymflqqzipzxj"> </icon> <span class="action-btn__button-text inline-block align-baseline"> Like </span> </div> </a> <span class="before:middot font-sans text-s text-color-text-low-emphasis"></span> <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_comments-action_comment_reply" class="comment__action inline-block font-sans text-xs text-color-text-low-emphasis cursor-pointer comment__reply" data-feed-action="replyToComment" data-feed-control="reply" data-feed-action-category="EXPAND" data-feed-action-type="expandReplyBox" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments-action_comment_reply" data-tracking-will-navigate> <div class="flex flex-row items-center "> <icon class="action-btn__icon w-2 mr-0.5" data-svg-class-name="action-btn__icon--svg" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4ol9mo4lxvobj5ww3va90wz1o"> </icon> <span class="action-btn__button-text inline-block align-baseline"> Reply </span> </div> </a> <!----> <span class="comment__reactions-count font-sans text-xs text-color-text-low-emphasis border-l-1 border-solid border-color-border-low-emphasis pl-1 mx-1 hidden"> 1 Reaction </span> </div> </div> </section> <div class="comments__see-more-wrapper"> <a class="comments__see-more" href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_comments_comment-see-more" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_comments_comment-see-more" data-tracking-will-navigate> See more comments </a> </div> </div> </div> <p class="feed-cta-banner__text border-t-1 border-color-surface-border border-solid p-3 text-center text-md text-color-text-low-emphasis"> To view or add a comment, <a href="https://www.linkedin.com/signup/cold-join?session_redirect=%2Fpulse%2Frecursion-theory-recursive-functions-hasanain-alsabonchi-eh9bc&trk=article-ssr-frontend-pulse_x-social-details_feed-cta-banner-cta" target="" aria-label="To view or add a comment, sign in" data-tracking-control-name="article-ssr-frontend-pulse_x-social-details_feed-cta-banner-cta" data-tracking-will-navigate="true" class="feed-cta-banner__link link">sign in</a> </p> <!----> </div> </section> <section class="right-rail papabear:w-right-rail-width papabear:ml-column-gutter mamabear:max-w-[790px] mamabear:px-mobile-container-padding babybear:max-w-[790px] babybear:px-mobile-container-padding"> <!----> <section class="aside-section-container mb-4 pulse-to-x"> <h2 class="aside-section-container__title section-title"> Insights from the community </h2> <!----> <div class="aside-section-container__content break-words"> <div class="show-more-less"> <!----> <ul data-max-num-to-show="6" class="show-more-less__list show-more-less__list--hide-after-6" data-impression-id="article-ssr-frontend-pulse_show-more-less"> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/1/how-can-you-determine-optimal-substructure-problem-0jnec" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Algorithms </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How can you determine the optimal substructure of a problem? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/0/what-some-common-methods-compute-jacobian" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Control Systems Design </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> What are some common methods to compute the Jacobian matrix of a control system model? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/1/what-significance-lambda-calculus-programming-g4pqc" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Computer Science </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> What is the significance of lambda calculus in programming language theory? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/3/how-can-you-use-iteration-solve-fibonacci-sequence-0pg7f" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Algorithms </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How can you use iteration to solve the Fibonacci sequence? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/3/how-can-you-determine-when-use-recursion-algorithm" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Programming </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How can you determine when to use recursion in an algorithm? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/1/how-do-you-implement-numerical-methods-stochastic" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Numerical Analysis </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How do you implement numerical methods for stochastic processes in different programming languages? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/0/how-can-you-calculate-required-memory-algorithm" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Operating Systems </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How can you calculate the required memory for an algorithm? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/0/how-do-you-name-format-algorithms-skills-algorithms" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Algorithms </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How do you name and format algorithms? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/0/how-can-you-ensure-your-algorithm-implementation-njnse" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Operations Research </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> How can you ensure your algorithm implementation is numerically stable? </div> <!----> </div> </a> </li> <li class="articles-side-panel__list-item -ml-3"> <a class="x-article-card__link hover:no-underline focus:no-underline active:no-underline" href="https://www.linkedin.com/advice/0/what-do-you-encounter-logical-reasoning-challenges-yuewc" data-tracking-will-navigate="true" data-tracking-control-name="recommended_article" data-feed-action-category="view" data-feed-action-type="viewArticle" target="_self"> <div class="x-article-card container-lined ml-0 my-2 min-h-max py-1 px-1.5 hover:shadow-md active:shadow-md md:m-2 w-100%"> <div class="x-article-card__tag tag-sm tag-enabled inline break-words font-normal"> Computer Science </div> <div class="x-article-card__title text-base break-words pt-1 text-md font-normal text-color-text"> What do you do if you encounter logical reasoning challenges in computer science? </div> <!----> </div> </a> </li> </ul> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" aria-label="Show more articles from the community" data-tracking-control-name="article-ssr-frontend-pulse_show_more"> Show more <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" aria-label="Show less articles from the community" data-tracking-control-name="article-ssr-frontend-pulse_show_more"> Show less <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> </div> </div> </section> <section class="aside-section-container mb-4 articles-content-card"> <h2 class="aside-section-container__title section-title"> Others also viewed </h2> <!----> <div class="aside-section-container__content break-words"> <div class="show-more-less"> <!----> <ul data-max-num-to-show="6" class="show-more-less__list show-more-less__list--hide-after-6" data-impression-id="article-ssr-frontend-pulse_show-more-less"> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/mastering-key-tree-graph-algorithms-week-3-breakdown-adjanohoun-kiqyc" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQHnbo9VabVy1w/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1726269350149?e=2147483647&v=beta&t=Xx7dw6ZUZNVNtI4PPM9n0F2W7MQYu0TDMqr29ZebH34" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Mastering Key Tree and Graph Algorithms: Week 3 Breakdown ... <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Jean Claude Adjanohoun </span> <span class="base-aside-card__metadata-item"> 3mo </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/what-makes-some-problems-easier-solve-than-others-mehran-nasseri-nztfe" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D4D12AQHDw58izrOirg/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1726396242944?e=2147483647&v=beta&t=mEbNVWJFS9lp5bqyldpqEjCyEGZNax5McpDqsE4KNFI" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> What Makes Some Problems Easier to Solve Than Others? <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Mehran Nasseri </span> <span class="base-aside-card__metadata-item"> 3mo </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/henry-warren-2012-computers-show-unsigned-division-even-saito" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/C4D12AQEbUIErchP7qg/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1639022411767?e=2147483647&v=beta&t=k8VRkdgQpCYB0VRsPtJIQuXSQ7q05gcO-cxh0EXOZcc" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Henry S. Warren · 2012 · Computers Show that for unsigned division by an even number, the shrxi instruction ... Good code to divide takes a Knuthian <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> YOSHINORI SAITO </span> <span class="base-aside-card__metadata-item"> 3y </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/enchantment-gaussian-pivot-fabienne-ruch-chaplais-rnlle" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D4E12AQEuWB67M5G69A/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1729256208715?e=2147483647&v=beta&t=o8fRZsqxn-YXyIIFZX5Zs9KCzIBr98YJ2GdR4Doov8s" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> The Enchantment of the Gaussian Pivot <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Fabienne Ruch Chaplais </span> <span class="base-aside-card__metadata-item"> 2mo </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/solving-race-conditions-using-atomic-counters-aditya-soni-rhhac" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQG4MHoSw8Kz_A/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1700368807683?e=2147483647&v=beta&t=JizjcjbJ2UK2yfJ7RqmekSw4_WRjvzmQjEU9uJ3_NMg" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Solving race conditions using atomic counters <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Aditya Soni </span> <span class="base-aside-card__metadata-item"> 1y </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/ml-recommender-system-using-tf-idf-sandeep-khurana" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media-exp1.licdn.com/media/AAYQAgQLAAkAAQAAAAAAAA196XghfnplQFCx7y__C0e55w.png" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> ML : Recommendation System <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Sandeep Khurana </span> <span class="base-aside-card__metadata-item"> 5y </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/understanding-systems-equations-python-yamil-garcia-0hw7e" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D4E12AQHZ2wzzbuA4Fw/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1721188043808?e=2147483647&v=beta&t=HQ1f3QSSS3Kf7tNJb0RS0Yq1Hf8IfDsmyVbbP-_uNYA" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Understanding Systems of Equations in Python <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Yamil Garcia </span> <span class="base-aside-card__metadata-item"> 6mo </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/introduction-algorithms-tusamma-sal-sabil" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/C5612AQFX0WVnTsVXmA/article-cover_image-shrink_600_2000/article-cover_image-shrink_600_2000/0/1584171023149?e=2147483647&v=beta&t=19c5bCYPvG2DVlqn-hnQVHRfRIZ-mq4PANs38_BATA0" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Introduction to Algorithms <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Tusamma Sal Sabil </span> <span class="base-aside-card__metadata-item"> 4y </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/boosting-python-performance-intel-oneapi-frameworks-overview-arun-g-k" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/D5612AQHFX8vS6BKi6g/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1684507929156?e=2147483647&v=beta&t=f4jdEgVauuNbMeBVLExotlybKw56lV1ydiA14nJ-d_E" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Boosting Python Performance with Intel® oneAPI Frameworks: An Overview <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Arun GK </span> <span class="base-aside-card__metadata-item"> 1y </span> </div> <!----> </div> <!----> </a> </li> <li class="articles-content-card__list-item mt-3"> <!----> <a href="https://www.linkedin.com/pulse/recursion-101-tivadar-danka" target="_self" data-tracking-control-name="full-link" data-tracking-will-navigate class="base-card relative w-full hover:no-underline focus:no-underline base-card--link base-aside-card flex my-1.5 base-aside-card--link aside-article-card"> <!----> <div class="base-aside-card__media flex-shrink-0 mr-0.5 overflow-hidden relative rounded-md h-[54px] w-[95px]"> <img class="lazy-load base-aside-card__media-element w-[100px] h-full object-cover" data-delayed-url="https://media.licdn.com/dms/image/v2/C4E12AQHTZAA13qAVkQ/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1639414391594?e=2147483647&v=beta&t=xO4RBBSeEW_YccxYbC4CS4AuGM0dRVZJT6sgXQbf3Is" data-ghost-url="https://static.licdn.com/aero-v1/sc/h/9l8dv1r8a09nem281grvopn9l" alt> <!----> </div> <div class="base-aside-card__info self-center pl-0.5 flex flex-col flex-1"> <h3 class="base-aside-card__title font-sans text-md font-bold text-color-text relative"> Recursion 101 <!----> </h3> <!----> <!----> <!----> <div class="base-aside-card__metadata font-sans text-sm leading-open font-regular text-color-text-low-emphasis mt-0.5"> <span class="base-aside-card__metadata-item"> Tivadar Danka </span> <span class="base-aside-card__metadata-item"> 2y </span> </div> <!----> </div> <!----> </a> </li> </ul> <button class="show-more-less__button show-more-less__more-button show-more-less-button " aria-expanded="false" aria-label="Show more about what others also viewed" data-tracking-control-name="article-ssr-frontend-pulse_show_more"> Show more <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> <button class="show-more-less__button show-more-less__less-button show-more-less-button show-more-less__button--hide" aria-expanded="false" aria-label="Show less about what others also viewed" data-tracking-control-name="article-ssr-frontend-pulse_show_more"> Show less <icon class="show-more-less__button--chevron show-more-less-button-icon" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4chtt12k98xwnba1nimld2oyg"></icon> </button> </div> </div> </section> <!----> <section class="aside-section-container mb-4 content-hub-topics"> <h2 class="aside-section-container__title section-title"> Explore topics </h2> <!----> <div class="aside-section-container__content break-words"> <ul class="career-advice-hub-topics__list"> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/sales-s5/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> Sales </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/marketing-s2461/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> Marketing </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/it-services-s57547/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> IT Services </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/business-administration-s50111/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> Business Administration </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/hr-management-s50359/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> HR Management </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/engineering-s166/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> Engineering </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/soft-skills-s2976/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary flex w-fit mr-1 mb-1 hover:no-underline"> Soft Skills </a> </li> <li class="career-advice-hub-topics__list-item mb-1"> <a href="https://www.linkedin.com/pulse/topics/home/" data-tracking-control-name="article-ssr-frontend-pulse_content-hub-topic" data-tracking-will-navigate class="btn-sm btn-secondary-emphasis flex w-fit mr-[6px] mb-1 hover:no-underline" aria-label="See All, Explore topics"> See All </a> </li> </ul> </div> </section> </section> </main> <div class="pre-footer "> <!----> </div> <footer class="li-footer bg-transparent w-full "> <ul class="li-footer__list flex flex-wrap flex-row items-start justify-start w-full h-auto min-h-[50px] my-[0px] mx-auto py-3 px-2 papabear:w-[1128px] papabear:p-0"> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <span class="sr-only">LinkedIn</span> <icon class="li-footer__copy-logo text-color-logo-brand-alt inline-block self-center h-[14px] w-[56px] mr-1" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/e12h2cd8ac580qen9qdd0qks8"></icon> <span class="li-footer__copy-text flex items-center">© 2024</span> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://about.linkedin.com?trk=d_flagship2_pulse_read_footer-about" data-tracking-control-name="d_flagship2_pulse_read_footer-about" data-tracking-will-navigate> About </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/accessibility?trk=d_flagship2_pulse_read_footer-accessibility" data-tracking-control-name="d_flagship2_pulse_read_footer-accessibility" data-tracking-will-navigate> Accessibility </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/user-agreement?trk=d_flagship2_pulse_read_footer-user-agreement" data-tracking-control-name="d_flagship2_pulse_read_footer-user-agreement" data-tracking-will-navigate> User Agreement </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/privacy-policy?trk=d_flagship2_pulse_read_footer-privacy-policy" data-tracking-control-name="d_flagship2_pulse_read_footer-privacy-policy" data-tracking-will-navigate> Privacy Policy </a> </li> <!----> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/cookie-policy?trk=d_flagship2_pulse_read_footer-cookie-policy" data-tracking-control-name="d_flagship2_pulse_read_footer-cookie-policy" data-tracking-will-navigate> Cookie Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/copyright-policy?trk=d_flagship2_pulse_read_footer-copyright-policy" data-tracking-control-name="d_flagship2_pulse_read_footer-copyright-policy" data-tracking-will-navigate> Copyright Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://brand.linkedin.com/policies?trk=d_flagship2_pulse_read_footer-brand-policy" data-tracking-control-name="d_flagship2_pulse_read_footer-brand-policy" data-tracking-will-navigate> Brand Policy </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/psettings/guest-controls?trk=d_flagship2_pulse_read_footer-guest-controls" data-tracking-control-name="d_flagship2_pulse_read_footer-guest-controls" data-tracking-will-navigate> Guest Controls </a> </li> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <a class="li-footer__item-link flex items-center font-sans text-xs font-bold text-color-text-solid-secondary hover:text-color-link-hover focus:text-color-link-focus" href="https://www.linkedin.com/legal/professional-community-policies?trk=d_flagship2_pulse_read_footer-community-guide" data-tracking-control-name="d_flagship2_pulse_read_footer-community-guide" data-tracking-will-navigate> Community Guidelines </a> </li> <!----> <li class="li-footer__item font-sans text-xs text-color-text-solid-secondary flex flex-shrink-0 justify-start p-1 relative w-50% papabear:justify-center papabear:w-auto"> <div class="collapsible-dropdown collapsible-dropdown--footer collapsible-dropdown--up flex items-center relative hyphens-auto language-selector z-2"> <!----> <ul class="collapsible-dropdown__list hidden container-raised absolute w-auto overflow-y-auto flex-col items-stretch z-1 bottom-[100%] top-auto" role="menu" tabindex="-1"> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="العربية (Arabic)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ar_AE" data-locale="ar_AE" role="menuitem" lang="ar_AE"> العربية (Arabic) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="বাংলা (Bangla)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-bn_IN" data-locale="bn_IN" role="menuitem" lang="bn_IN"> বাংলা (Bangla) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Čeština (Czech)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-cs_CZ" data-locale="cs_CZ" role="menuitem" lang="cs_CZ"> Čeština (Czech) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Dansk (Danish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-da_DK" data-locale="da_DK" role="menuitem" lang="da_DK"> Dansk (Danish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Deutsch (German)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-de_DE" data-locale="de_DE" role="menuitem" lang="de_DE"> Deutsch (German) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Ελληνικά (Greek)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-el_GR" data-locale="el_GR" role="menuitem" lang="el_GR"> Ελληνικά (Greek) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="English (English) selected" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link--selected" data-tracking-control-name="language-selector-en_US" data-locale="en_US" role="menuitem" lang="en_US"> <strong>English (English)</strong> </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Español (Spanish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-es_ES" data-locale="es_ES" role="menuitem" lang="es_ES"> Español (Spanish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="فارسی (Persian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fa_IR" data-locale="fa_IR" role="menuitem" lang="fa_IR"> فارسی (Persian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Suomi (Finnish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fi_FI" data-locale="fi_FI" role="menuitem" lang="fi_FI"> Suomi (Finnish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Français (French)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-fr_FR" data-locale="fr_FR" role="menuitem" lang="fr_FR"> Français (French) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="हिंदी (Hindi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-hi_IN" data-locale="hi_IN" role="menuitem" lang="hi_IN"> हिंदी (Hindi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Magyar (Hungarian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-hu_HU" data-locale="hu_HU" role="menuitem" lang="hu_HU"> Magyar (Hungarian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Bahasa Indonesia (Indonesian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-in_ID" data-locale="in_ID" role="menuitem" lang="in_ID"> Bahasa Indonesia (Indonesian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Italiano (Italian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-it_IT" data-locale="it_IT" role="menuitem" lang="it_IT"> Italiano (Italian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="עברית (Hebrew)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-iw_IL" data-locale="iw_IL" role="menuitem" lang="iw_IL"> עברית (Hebrew) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="日本語 (Japanese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ja_JP" data-locale="ja_JP" role="menuitem" lang="ja_JP"> 日本語 (Japanese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="한국어 (Korean)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ko_KR" data-locale="ko_KR" role="menuitem" lang="ko_KR"> 한국어 (Korean) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="मराठी (Marathi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-mr_IN" data-locale="mr_IN" role="menuitem" lang="mr_IN"> मराठी (Marathi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Bahasa Malaysia (Malay)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ms_MY" data-locale="ms_MY" role="menuitem" lang="ms_MY"> Bahasa Malaysia (Malay) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Nederlands (Dutch)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-nl_NL" data-locale="nl_NL" role="menuitem" lang="nl_NL"> Nederlands (Dutch) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Norsk (Norwegian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-no_NO" data-locale="no_NO" role="menuitem" lang="no_NO"> Norsk (Norwegian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="ਪੰਜਾਬੀ (Punjabi)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pa_IN" data-locale="pa_IN" role="menuitem" lang="pa_IN"> ਪੰਜਾਬੀ (Punjabi) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Polski (Polish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pl_PL" data-locale="pl_PL" role="menuitem" lang="pl_PL"> Polski (Polish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Português (Portuguese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-pt_BR" data-locale="pt_BR" role="menuitem" lang="pt_BR"> Português (Portuguese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Română (Romanian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ro_RO" data-locale="ro_RO" role="menuitem" lang="ro_RO"> Română (Romanian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Русский (Russian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-ru_RU" data-locale="ru_RU" role="menuitem" lang="ru_RU"> Русский (Russian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Svenska (Swedish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-sv_SE" data-locale="sv_SE" role="menuitem" lang="sv_SE"> Svenska (Swedish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="తెలుగు (Telugu)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-te_IN" data-locale="te_IN" role="menuitem" lang="te_IN"> తెలుగు (Telugu) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="ภาษาไทย (Thai)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-th_TH" data-locale="th_TH" role="menuitem" lang="th_TH"> ภาษาไทย (Thai) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Tagalog (Tagalog)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-tl_PH" data-locale="tl_PH" role="menuitem" lang="tl_PH"> Tagalog (Tagalog) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Türkçe (Turkish)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-tr_TR" data-locale="tr_TR" role="menuitem" lang="tr_TR"> Türkçe (Turkish) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Українська (Ukrainian)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-uk_UA" data-locale="uk_UA" role="menuitem" lang="uk_UA"> Українська (Ukrainian) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="Tiếng Việt (Vietnamese)" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-vi_VN" data-locale="vi_VN" role="menuitem" lang="vi_VN"> Tiếng Việt (Vietnamese) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="简体中文 (Chinese (Simplified))" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-zh_CN" data-locale="zh_CN" role="menuitem" lang="zh_CN"> 简体中文 (Chinese (Simplified)) </button> </li> <li class="language-selector__item" role="presentation"> <!-- Adding aria-label to both the li and the button because screen reader focus goes to button on desktop and li on mobile--> <button aria-label="正體中文 (Chinese (Traditional))" class="font-sans text-xs link block py-[5px] px-2 w-full hover:cursor-pointer hover:bg-color-action hover:text-color-text-on-dark focus:bg-color-action focus:text-color-text-on-dark language-selector__link !font-regular" data-tracking-control-name="language-selector-zh_TW" data-locale="zh_TW" role="menuitem" lang="zh_TW"> 正體中文 (Chinese (Traditional)) </button> </li> <!----> </ul> <button class="language-selector__button select-none relative pr-2 font-sans text-xs font-bold text-color-text-low-emphasis hover:text-color-link-hover hover:cursor-pointer focus:text-color-link-focus focus:outline-dotted focus:outline-1" aria-expanded="false" data-tracking-control-name="footer-lang-dropdown_trigger"> <span class="language-selector__label-text mr-0.5 break-words"> Language </span> <icon class="language-selector__label-chevron w-2 h-2 absolute top-0 right-0" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/cyolgscd0imw2ldqppkrb84vo"></icon> </button> </div> </li> </ul> <!----> </footer> <div id="toasts" class="toasts fixed z-8 babybear:right-4 mamabear:right-4 papabear:min-h-[96px] invisible top:auto bottom-4 left-4 papabear:w-[400px] toasts--bottom" type="bottom"> <template id="toast-template"> <div class="toast container-raised flex toast--bottom transition ease-accelerate duration-xxslow " data-id="toast"> <div class="toast__message flex flex-1 babybear:items-center mamabear:items-center papabear:items-start py-2 px-1.5" data-id="toast__message" role="alert" tabindex="-1"> <div class="toast__message-content-container" data-id="toast__message-content-container"> <p class="toast__message-content font-sans text-sm opacity-90 inline babybear:self-center mamabear:self-center papabear:self-start" data-id="toast__message-content"></p> </div> </div> <button class="toast__dismiss-btn cursor-pointer babybear:self-center mamabear:self-center papabear:self-start pt-3 pb-2 papabear:py-2 pl-0.5 pr-0" data-id="toast__dismiss-btn" aria-label="Close"> <svg width="24" height="24" class="fill-color-icon"><path d="M13 4.32 9.31 8 13 11.69 11.69 13 8 9.31 4.31 13 3 11.69 6.69 8 3 4.31 4.31 3 8 6.69 11.68 3Z"></path></svg> </button> </div> </template> <template id="toast-icon-caution"> <icon class="text-color-icon-caution toast__icon w-3 h-3 shrink-0 mr-2" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/bk9xca6x9l1fga1tbzame3i3l"></icon> </template> <template id="toast-icon-error"> <icon class="text-color-icon-negative toast__icon w-3 h-3 shrink-0 mr-2" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/8c0098stai8lcqypn95r47dew"></icon> </template> <template id="toast-icon-gdpr"> <icon class="text-color-icon-neutral toast__icon w-3 h-3 shrink-0 mr-2" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/a9phzx7id2abubo45lgookfd"></icon> </template> <template id="toast-icon-notify"> <icon class="text-color-icon-neutral toast__icon w-3 h-3 shrink-0 mr-2" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/4xg53nt8deu1y7tb1t3km8tfh"></icon> </template> <template id="toast-icon-success"> <icon class="text-color-icon-positive toast__icon w-3 h-3 shrink-0 mr-2" data-delayed-url="https://static.licdn.com/aero-v1/sc/h/9zhm3eh2dq7vh2muo8xnfikxh"></icon> </template> <template id="toast-cta"> <a class="toast__cta cta-link font-medium ml-0.5 text-sm text-inherit inline" target="_blank"></a> </template> </div> <script src="https://static.licdn.com/aero-v1/sc/h/c2hrypcg7syy07wkk901c88q3" async></script> <!----> <script src="https://static.licdn.com/aero-v1/sc/h/dyvnmosetei5i66qb3mm2d6wv" async defer></script> <script data-delayed-url="https://static.licdn.com/aero-v1/sc/h/19m2m2iij3pcbxe4bkogyzklj" data-module-id="media-player"></script> <!----> </body> </html>