[{"data":1,"prerenderedAt":204},["ShallowReactive",2],{"term-p\u002Fpure-function":3,"related-p\u002Fpure-function":190},{"id":4,"title":5,"acronym":6,"body":7,"category":173,"description":174,"difficulty":175,"extension":176,"letter":16,"meta":177,"navigation":102,"path":178,"related":179,"seo":184,"sitemap":185,"stem":188,"subcategory":6,"__hash__":189},"terms\u002Fterms\u002Fp\u002Fpure-function.md","Pure Function",null,{"type":8,"value":9,"toc":167},"minimark",[10,15,19,23,26,30,156,160,163],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"A pure function is the well-behaved kid of programming. Give it the same inputs and it always gives you the exact same output, every time, without touching anything outside. No surprises, no hidden effects, completely predictable.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"A pure function always produces the same output for the same inputs and has no side effects. It does not read or write external state. Pure functions are trivially testable, composable, and safe to run concurrently since they are referentially transparent.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Pure — same input always returns same output\nconst double = (n: number) => n * 2;\n\n\u002F\u002F Impure — depends on external state\nlet multiplier = 2;\nconst impureDouble = (n: number) => n * multiplier;\n","typescript","",[38,39,40,49,97,104,110,125],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F Pure — same input always returns same output\n",[41,50,52,56,60,64,67,71,74,78,81,84,87,90,94],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","const",[41,57,59],{"class":58},"sTEyZ"," double ",[41,61,63],{"class":62},"sMK4o","=",[41,65,66],{"class":62}," (",[41,68,70],{"class":69},"sHdIc","n",[41,72,73],{"class":62},":",[41,75,77],{"class":76},"sBMFI"," number",[41,79,80],{"class":62},")",[41,82,83],{"class":54}," =>",[41,85,86],{"class":58}," n ",[41,88,89],{"class":62},"*",[41,91,93],{"class":92},"sbssI"," 2",[41,95,96],{"class":62},";\n",[41,98,100],{"class":43,"line":99},3,[41,101,103],{"emptyLinePlaceholder":102},true,"\n",[41,105,107],{"class":43,"line":106},4,[41,108,109],{"class":47},"\u002F\u002F Impure — depends on external state\n",[41,111,113,116,119,121,123],{"class":43,"line":112},5,[41,114,115],{"class":54},"let",[41,117,118],{"class":58}," multiplier ",[41,120,63],{"class":62},[41,122,93],{"class":92},[41,124,96],{"class":62},[41,126,128,130,133,135,137,139,141,143,145,147,149,151,154],{"class":43,"line":127},6,[41,129,55],{"class":54},[41,131,132],{"class":58}," impureDouble ",[41,134,63],{"class":62},[41,136,66],{"class":62},[41,138,70],{"class":69},[41,140,73],{"class":62},[41,142,77],{"class":76},[41,144,80],{"class":62},[41,146,83],{"class":54},[41,148,86],{"class":58},[41,150,89],{"class":62},[41,152,153],{"class":58}," multiplier",[41,155,96],{"class":62},[11,157,159],{"id":158},"when-youll-hear-this","When You'll Hear This",[16,161,162],{},"\"Keep the business logic in pure functions so they're easy to test.\" \u002F \"Refactor that into a pure function — no more hidden dependencies.\"",[164,165,166],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":168},[169,170,171,172],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":158,"depth":51,"text":159},"general","A pure function is the well-behaved kid of programming.","intermediate","md",{},"\u002Fterms\u002Fp\u002Fpure-function",[180,181,182,183],"Side Effect","Functional Programming","Idempotent","Return Value",{"title":5,"description":174},{"changefreq":186,"priority":187},"weekly",0.7,"terms\u002Fp\u002Fpure-function","FiZ5PCENu3GR7KCOa1DBE1QTmU_CSR8bO-Sxc1xFPgs",[191,194,197,201],{"title":181,"path":192,"acronym":6,"category":173,"difficulty":175,"description":193},"\u002Fterms\u002Ff\u002Ffunctional-programming","Functional programming is like cooking with strict rules: no shared bowls, no side dishes contaminating each other, and every dish must be exactly reproduc...",{"title":182,"path":195,"acronym":6,"category":173,"difficulty":175,"description":196},"\u002Fterms\u002Fi\u002Fidempotent","Idempotent means you can do the same thing multiple times and get the same result as doing it once.",{"title":183,"path":198,"acronym":6,"category":173,"difficulty":199,"description":200},"\u002Fterms\u002Fr\u002Freturn-value","beginner","A return value is what a function hands back to you after doing its work. You send a coffee machine beans and water, it returns coffee.",{"title":180,"path":202,"acronym":6,"category":173,"difficulty":175,"description":203},"\u002Fterms\u002Fs\u002Fside-effect","A side effect is when a function secretly does something beyond just giving you an answer — like changing a global variable, writing to a file, or sending...",1776518304675]