{ "q1": { "type": "blank", "question": "\n
\nThe concepts beind the functional programming paradigm requires functions\nto be ____, meaning functions only rely on their given inputs to produce\nan output. A benefit of using such ____ functions is the reduction of\n____, which occur when there are changes performed within a function's\noperation that are outside its scope.\n
\n\n\nTo support this programming paradigm, Python supports ____ functions,\nwhich means you can pass functions as arguments to other functions.\nThree common higher-order functions in Python are:\n
\n\n\n\nTo create anonymous functions that we can pass to the higher-order\nfunctions above, we can use ____ expressions.\n
\n\n\nBecause the first two higher-order functions above return iterables, we\ncan re-write them using ____, which are a more Pythonic way of making\nlists.\n
\n\n\nRather than materializing or populating a whole list or iterable, we can\nproduce items one-by-one using a ____ function that contains the\nyield keyword.\n
\n" } }