例えば、私は自分自身を、空のリストを作成しforeach
を使用して、リストにすべての項目を追加しましたこれまでのところlist(104, 101, 108, 108, 111)
またはlist("h", "e", "l", "l", "o")
文字列をIoのリストに変換するにはどうすればよいですか?
に"hello"
をオンにしたいのですが、それは本当に行うに簡潔な方法ではありませんそれ。
例えば、私は自分自身を、空のリストを作成しforeach
を使用して、リストにすべての項目を追加しましたこれまでのところlist(104, 101, 108, 108, 111)
またはlist("h", "e", "l", "l", "o")
文字列をIoのリストに変換するにはどうすればよいですか?
に"hello"
をオンにしたいのですが、それは本当に行うに簡潔な方法ではありませんそれ。
一つの方法は、正規表現のアドオンを使用することです:
#!/usr/bin/env io
Regex
myList := "hello" allMatchesOfRegex(".") map (at(0))
をしかし、私は他の(そしておそらくより良い!)の方法が存在しなければならないと確信しています。
更新 - 私の質問に対するコメント: Sequenceオブジェクトに何かが組み込まれているといいですね。
Sequence asList := method (
Regex
self allMatchesOfRegex(".") map (at(0))
)
# now its just
myList := "hello" asList
私自身の提案:例えばのために
Sequence asList := method(
result := list()
self foreach(x,
result append(x)
)
)
は、それが性能面テストしていませんが、正規表現を避けることは何かを考慮する必要があります。
もううまく簡潔それでもforeach
ソリューションよりも、残念ながら遅くはある:あなたは**本当に**あなたがリストに文字列を変換するために通過しなければならないものを知っている必要はありません
Sequence asList := method (
Range 0 to(self size - 1) map (v, self at(v) asCharacter)
)
こんにちは。 ;-) –
笑..もし私がかなり深刻なプログラミング言語を作成したら、それをHelと名付けることを約束します:) – Jakob
トピックをオフにしますが、ここではIo質問に関連します。私は 'iolanguage'がIoの標準タグであるため、あなたが最近行った編集にタグを付けてロールバックしました。 – draegtun