{'fraction_non_alphanumeric': 0.027874564459930314, 'fraction_numerical': 0.0023228803716608595, 'mean_word_length': 5.201438848920863, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Adapting higher-order list operators for blocks programming

In MIT App Inventor (AI), puzzle-shaped blocks are connected to program Android apps. AI has Python-like lists typically manipulated with loops, but implementing such loops correctly is challenging for novice AI programmers. To simplify list processing, we extended AI with new blocks that map, filter, reduce and sort lists. Since AI does not have first-class functions, these pseudo-higher-order list operator (PHOLO) blocks incorporate the parameter and body declarations of functional arguments normally associated with these operators. To assess the usability of these new list operators, we conducted a user study with 18 students with AI experience. Most users correctly completed a majority of the tasks, but many struggled with processing lists of lists and sorting tasks involving two keys.