C#有具有類似語法發生器功能:選擇的列表產生一個語法表達式
IEnumerable<int> GetNats(int max)
{
for (int i=0; i < max; ++i)
yield return i;
}
一個功能,我很感興趣,我的編程語言(一個簡單的編程與Java類似,斯卡拉,ActionScript中面向對象,和C#)是生成器表達式。這些本質上是發電機功能的語法糖。
我目前最喜歡的候選人是語法如下:
IEnumerable<int> nats =
witheach (i in range(0, 42))
yield i * 2;
表達range(0, 42)
是一個內置的發電機的功能。
所以我的問題是你想用C#/ Java/Scala/ActionScript類型的語言來查看生成器表達式的語法,爲什麼?
可能影響響應的一些因素是,像我的語言中的Scala和ActionScript類型在類型之後聲明。例如:
var myVar : SomeType = initialValue;
而且匿名函數是這樣的:
var myFunc = function(int x) {
return x + 1;
}
比我的語言語法的其餘部分類似於Java或C#其他。我的語言有一個foreach
聲明,它非常類似於C#。
使這個社區維基 - 因爲沒有絕對的答案。 – 2009-10-24 13:58:33
「foreach」是用於循環使用您的語言的集合的關鍵字嗎?如果是這樣,那麼使「witheach」成爲一種自然選擇。 – outis 2009-10-24 14:14:28
根據建議將其製作成社區wiki。@outis,是的foreach語句看起來就像C#一樣。 – cdiggins 2009-10-24 14:18:32