簡體   English   中英

如何將列表中的項目轉換為球拍中的字符串

[英]How to cast items in a list to Strings in Racket

因此,我有一個從文件創建的項目列表。 我能夠讀取文件並將項目成功放入列表中,但是在將這些項目轉換/轉換為字符串時遇到了麻煩。

因此,例如:

(print myList)

產生:

'(Apple Orange banana pickle)

和:

(for ([i lst])
        (print i)
    )

產生:

'Apple'Orange'banana'pickle

不是字符串。

我真的只想要一個字符串列表,以便以后可以使用它們。 球拍文檔似乎只顯示如何處理字符。 我應該怎么做呢? 謝謝你的幫助!

使用內置的map過程以及symbol->string ,有一種更簡單,更慣用的方式,它可以准確地執行您需要的轉換:

(map symbol->string '(apple orange banana pickle))
=> '("apple" "orange" "banana" "pickle")

請記住,在Scheme中,大多數時候我們避免對諸如set!操作進行變異set! -Scheme支持一種編程的功能樣式,在該樣式中我們構建新數據而不是對其進行修改。

還要注意,我們避免顯式循環-有內置的過程可以用您可以想象的任何方式來處理列表,在極少數情況下,當我們找不到滿足我們需求的過程時,便使用遞歸進行循環。

我想我找到了答案。 我相信清單中的物品在球拍中稱為“符號”。 因此,您可以使用一種方法“ symbol-> string”。

因此,我定義了一個名為“ stringList”的新列表,並執行以下操作:

;Create new list to be list of strings
(define stringList '())

;convert symbols from list into strings and add to stringList
(for ([i myList])
  (set! i (symbol->string i))
  (set! stringList (cons i stringList))
)

仍然希望聽到任何反饋!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM