<jupyter_start><jupyter_text>SICP 习题 （2.28）解题总结：树状列表的遍历 SICP  习题 2.28 的本质其实是树的遍历题目要求我们实现一个叫fringe的过程，fringe的英文意思是边缘，花边的意思，题目的意思其实就是要我们遍历一棵树，然后以列表的形式返回这棵树的所有叶子。该过程的实现和上面的deep-reverse差不多，都是遍历元素，如果元素是一个列表则递归调用fringe进入，如果元素是一个简单元素则直接组合起来。代码如下：<jupyter_code>(define (fringe input-list)
  
  (if (null? input-list)
      '()
      (append (if (list? (car input-list))
		  (fringe (car input-list))
		  (list (car input-list)))
	      (fringe (cdr input-list)))))
(define (start-test-2-28)
  (fringe '(1 2 (3 4 5 (7 8 9) 10 11 (12 13 (14 15 16 17)))))
  )
(start-test-2-28)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15100671140939598, 'fraction_numerical': 0.06040268456375839, 'mean_word_length': 4.97, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '279630', 'license': 'MIT', 'n_tokens_mistral': 379, 'n_tokens_neox': 377, 'n_words': 46, 'path': 'cn/.ipynb_checkpoints/sicp-2-28-checkpoint.ipynb', 'repo_name': 'DamonDeng/sicp_exercise', 'size': '596'}