今年我做的是the Advent of Code in Racket,当我解析输入(保存为文件)时,我通常会用某种方法映射到每一行。在某些情况下,可以使用诸如string->number之类的东西直接映射难题输入,但在其他情况下,在进一步操作之前,需要将其拆分为非空格字符串。
当然,我可以使用lambda来完成此操作:
; Custom method for handling the input reading
(read-input-lines #:line-parser (lambda (line) (string-split line ","))虽然这是可行的,但有时让多个嵌套的lambda来做这件事和进一步的解析可能会很烦人,所以我想知道是否有一种方法可以有效地将',‘绑定到string-split,这样我就不需要把它包装在lambda中。
换句话说,有没有一种方法可以在不使用lambda的情况下将参数值绑定到方法的特定参数位置,例如将,绑定到string-split的第二个参数位置
发布于 2020-12-06 02:09:48
您可以编写帮助器过程,这样就不必多次定义相同的lambda:
(define (split-by-comma line)
(string-split line ","))
(read-input-lines #:line-parser split-by-comma)要将参数值绑定到方法的特定参数位置而不使用lambda,更通用的解决方案是使用SRFI 26中的cut
(require srfi/26)
(read-input-lines #:line-parser (cut string-split <> ","))https://stackoverflow.com/questions/65159957
复制相似问题