首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试遍历字符串列表并将计数添加到字符串的末尾

尝试遍历字符串列表并将计数添加到字符串的末尾
EN

Stack Overflow用户
提问于 2016-03-11 02:23:57
回答 1查看 44关注 0票数 0

我试图使用球拍简单的qr库,并接受一个字符串的列表,这将是网站和创建每个项目的qr。

这就是我所拥有的:

代码语言:javascript
复制
#lang racket
(require simple-qr)

;;auto makes a qr for the main source of simple-qr
(qr-code "https://github.com/simmone" "gitSource.png")

;;asking the user to imput a string so that
;;they can create their own qr code
;;they can also name it themselves
(define (makeQRForME mystring namestring)
  (qr-code mystring (string-append namestring ".png")))

(define count 0)

(define (addqrlist lst)
  (if (null? lst) lst
    (makeQRForME (car lst) (string-append "stringQR"(number->string(+ 1 count)))))
    (addqrlist (rest lst)))

我是个新手,很难编写这个迭代函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 03:06:43

下面是如何用Racket编写函数:

代码语言:javascript
复制
(define (make-qr-codes texts)
  (for ((text (in-list texts))
        (count (in-naturals)))
    (qr-code text (format "stringQR~a.png" count))))

但是,如果您想知道如何修复您的版本,我将这样做:

代码语言:javascript
复制
(define (addqrlist lst)
  (let loop ((rest lst)
             (count 0))
    (unless (null? rest)
      (makeQRForMe (car rest) (format "stringQR~a" count))
      (loop (cdr rest) (add1 count)))))

(您的版本混合了carrest的使用,而不是carcdrfirstrest。我将其更改为始终使用carcdr。此外,使用format而不是string-append +number->string更易读。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35931105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档