{"text_format":"1","workbook":"xlsx","n_sheets":2,"sheets":["Worksheet","LambdaDevelopment"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":65,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Worksheet","index":0,"n_rows":25,"n_cols":20,"rows_kept":25,"cut":false,"hidden":false,"merged":[]}
[]
[null,null,"S",1,null,null,2]
[null,null,"I",{"$f":" I","v":1},2,3,{"$f":"I","v":1},2,3,null,{"$f":" _xlfn.FORMULATEXT(K6)","v":"= Array(1, 2, 3)"}]
[]
[null,"T",null,"Array",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Function applied to data range"]
[null,{"$f":" T","v":1},null,{"$f":" _xlfn.RANDARRAY(3,6,10,99,1)","v":84},92,75,11,22,80,null,{"$f":" Array(1, 2, 3)","v":80}]
[null,2,null,47,99,53,86,75,51]
[null,3,null,98,99,95,81,68,49]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Orchestrates recursion"]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"(Calls may be made prior"]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"to or following the recursion)"]
[null,null,null,1,2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Operands created prior to"]
[null,"T",null,"Item Maxima",null,null,"Formula",null,null,null,null,null,null,null,null,null,null,null,null,"recusion are relicated at each "]
[null,{"$f":" T","v":1},null,{"$f":" ITEMMAX(Array)","v":92},80,null,{"$f":" _xlfn.FORMULATEXT(D14)","v":"= ITEMMAX(Array)"},null,null,null,null,null,null,null,null,null,null,null,null,"level.  A single operand is "]
[null,2,null,99,86,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"returned with other memory freed."]
[null,3,null,99,81]
[]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Pairwise comparison"]
[null,"Min-max",null,{"$f":" MIN(ITEMMAX(Array))","v":92},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Called following return"]
[]
[]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Interface to data (subsets)"]
[]
[null,null,null,"The requirement was to return the largest value from each"]
[null,null,null,"triple within a two dimensional array.",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Data array"]

{"sheet":"LambdaDevelopment","index":1,"n_rows":29,"n_cols":12,"rows_kept":29,"cut":false,"hidden":false,"merged":[]}
[]
[null,"λ-function development sheet"]
[]
[null,null,"1. Declare name","2. Add comment","4. Check syntax                                     5. Upload to Name","3. Develop named formula or Lambda",null,null,"6. Test functionality"]
[null,null,null,null,"(with formula active)"]
[null,null,"Name",null,"FormulaText","Formula Input"]
[null,null,null,null,{"$f":" IF(_xlfn.ISFORMULA(LambdaFormula),\n        _xlfn.FORMULATEXT(LambdaFormula), \"\")","v":""}]
[null,"Iteration step","ITERMAX","Compares current value to max of prior values\n   k: index\n   arr: λ-function\n   max: running max","= LAMBDA(k,arr,max,\n      LET(\n         newvals, arr(T,S,k),\n         IF(newvals>max, newvals, max) )\n   )(1, Array, 0)",{"$f":" _xlfn.LAMBDA(_xlpm.k,_xlpm.arr,_xlpm.max,\n      _xlfn.LET(\n         _xlpm.newvals, _xlpm.arr(T,S,_xlpm.k),\n         IF(_xlpm.newvals>_xlpm.max, _xlpm.newvals, _xlpm.max) )\n   )(1, Array, 0)","v":84},11]
[null,null,null,null,"",47,86]
[null,null,null,null,"",98,81]
[null,null,null,null,""]
[null,"Lambda function","Array","Looks up element of 3D array\n   T: row index\n   S: block/set index\n   I : column/item index","= LAMBDA(T,s,I,\n      INDEX(DataRange, T, I + 3*(s-1))\n   )(T, S, 2)",{"$f":" _xlfn.LAMBDA(_xlpm.T,_xlpm.s,_xlpm.I,\n      INDEX(DataRange, _xlpm.T, _xlpm.I + 3*(_xlpm.s-1))\n   )(T, S, 2)","v":92},22]
[null,null,null,null,"",99,75]
[null,null,null,null,"",99,68]
[null,null,null,null,""]
[null,"Recursion control","EACH","Orchestrates recursion\n   k: level index\n   arr: λ-function to data","= LAMBDA(k,arr,\n      LET(\n         max, IF(k>1, EACH(k-1, arr), 0),\n        ITERMAX(k, arr, max))\n   )(3, Array)",{"$f":" _xlfn.LAMBDA(_xlpm.k,_xlpm.arr,\n      _xlfn.LET(\n         _xlpm.max, IF(_xlpm.k>1, EACH(_xlpm.k-1, _xlpm.arr), 0),\n        ITERMAX(_xlpm.k, _xlpm.arr, _xlpm.max))\n   )(3, Array)","v":92},80]
[null,null,null,null,"",99,86]
[null,null,null,null,"",99,81]
[null,null,null,null,""]
[null,"Ref",null,"Shows Array, for reference","= Array(T,1,I)",{"$f":" Array(T,1,I)","v":84},92,75,null,{"$f":" Array(T,2,I)","v":11},22,80]
[null,null,null,null,"",47,99,53,null,86,75,51]
[null,null,null,null,"",98,99,95,null,81,68,49]
[null,null,null,null,""]
[null,"Wrapper","ITEMMAX","Returns maximum value from each dataset\narr: λ-function","= LAMBDA(arr,\n     EACH(3, arr)\n   )(Array)",{"$f":" _xlfn.LAMBDA(_xlpm.arr,\n     EACH(3, _xlpm.arr)\n   )(Array)","v":92},80,null,null,{"$f":" ITEMMAX(Array)","v":92},80]
[null,null,null,null,"",99,86,null,null,99,86]
[null,null,null,null,"",99,81,null,null,99,81]
[null,null,null,null,""]
[null,null,null,null,""]
[null,null,null,null,""]