从球拍中的列表列表中删除空格



我正在处理PL逻辑解析器,我需要确保输入没有空格或均匀间隔。我认为卸下空间会更容易。因此,我正在编写一个函数,可以从输入中删除空格。

到目前为止,我有:

;sample input
(define KB&!alpha
  '((Girl)
    (~ Boy)
    (~~Boy)
    ( ~(FirstGrade ^ ~ ~ Girl))
    (Boy / Child)))
(define formatted null)
;formatting function
(define (Format_Spaces KB&!alpha)
  (for/list ((item KB&!alpha))
    (cond 
      ((list? item)(Format_Spaces item))
      ((not (eq? item " "))(set! formatted (append formatted (list item))))
      ((eq? item " ")(Format_Spaces (cdr KB&!alpha)))
    )
  )
)

,但显然给了我错误的输出。

不仅空间仍然存在,而且输出是输入的怪异组合。有人可以帮我吗?

我想得到这样的东西:

'((FirstGrade)
    (FirstGrade=>Child)
    (Child^Male=>Boy)
    (Kindergarten=>Child)
    (Child^Female=>Girl)
    (Female)))

感谢您的阅读。

编辑:我正在尝试以格式制作输入统一。在新的样本输入中,(〜男孩)被解析为2个符号,(~~男孩)为1个符号,(〜〜女孩)为3。我认为这很难解析。尤其是符号/操作员/空格的不同变化。(即"儿童^"是" child"," child","^"或" child^"整个符号?)

重新编辑:

根据您下面的评论,在我看来,您实际上要在球拍中编写此算法。

在这种情况下,我有一个更简单的处方:不要做任何事情。特别是,您的输入目前根本不包含任何空间。您看到的空间被插入了球拍的显示机制的一部分,与数据库打印机可能会以逗号或选项卡分离的字段与数字相同。

而不是担心逗号,而要关注分辨率算法。它需要什么,它产生了什么?

相关内容

  • 没有找到相关文章

最新更新