これは、私が IBM Swift サンドボックスで楽しみのために行っていることです。私は最近、Scala で L-system algae を作成しましたが、言語がどのように比較されるかを確認するために Swift で実行するのはクールだと思います。
https://github.com/I2obiN/L-System-Algorithms-and-Fractals/blob/master/algae.scala
これは、私が何を目指しているかを示すための Scala であり、これが Swift にあるものです。
/**
* Created by t.hood on 26/01/16
* L-System Algae
*
*/
import Foundation
// Mapping function for string
func stringmap(x: String) -> String {
var str = x;
// Replace characters in string
str = x.stringByReplacingOccurrencesOfString("A", withString: "AB") +
str.stringByReplacingOccurrencesOfString("B", withString: "A");
// Return mapped string;
return str;
}
func lsys() {
// Declarations
var iteration : Int = 2;
var x = 0;
var lsystem: String = "A";
let charA: Character = "A";
let charB: Character = "B";
while(x != iteration) {
print(lsystem)
// Iterate through characters in string
for chars in lsystem.characters {
lsystem = stringmap(lsystem);
}
// Inc count ..
x+=1
}
}
// Run ..
lsys();
私が抱えている問題は、マッピング機能にあります。x をマップし、結果を出力してから、str で次のマップを実行するために必要です。問題は、両方のマップの間に演算子 + があり、最初の操作の後に str をすばやく印刷できないことです。
これを回避する方法について誰かアイデアはありますか?最初の置換後に str を出力できれば、うまくいくと思います。