我正在設計一種編程語言,我想添加的一個功能是trampoline function和class
之間的交叉。也就是說,一個類似於generic class
的文字類似於type
。我被困在這些名字上,因爲我之前沒有遇到過他們的語言,有沒有什麼東西已經意味着這個概念或者什麼東西接近?使用trampoline class
是一個選項,但如果有更準確的描述或者已經在使用另一種語言,我寧願隨它一起去減少文檔中所需的術語數量。有沒有蹦牀班的名字?
僞代碼如下說明這一原則的情況下,它不是從上面明確:
class Point<const int n> {
private float[n] _value;
Point() {
for (int i = 0; i < n; i++) {
this._value[i] = 0f;
}
}
Point(Point<o> other) {
for (int i = 0; i < min(n, o); i++) {
this._value[i] = 0f;
}
}
public static float operator [index] (optional float value = null) {
if (value != null) { this._value[index] = value; }
return (this._value[index]);
}
public static Point<max(o, p)> operator + (Point<const int o> p1, Point<const int p> p2) {
Point<min(o, p)> small = (p1.n < p2.n ? p1 : p2);
Point<min(o, p)> large = (p1.n < p2.n ? p2 : p1);
Point<max(o, p)> ret = new Point<max(o, p)>(large);
for (int i = 0; i < min(o, p); i++) { ret[i] += small[i] }
return (ret);
}
}
謝謝,但我想我可能混淆了一些東西,通過比較'trampoline函數',它類似於實現級別的概念,但不是真正的理論 - 或者通過使用'max(o, p)語句中的僞代碼。實際上,允許「max(o,p)」的動態位與我在這裏想到的功能截然不同。我正在尋找一種方法來傳遞一個字面值或計算值(一個計算值可以在此語言中被視爲一種字面值)作爲一種通用參數,它不是一種類型,而是自己鍵入的類型(例如一個int。 )Upvoted的信息。 – CoryG
你能澄清你的問題嗎?我基本上通過查看代碼來猜測你在問什麼。也許你可以提供一個代碼示例,只包含你正在尋找的概念,沒有其他不尋常的概念?另外,請添加更多關於您正在尋找的功能的詳細說明,所以我們不需要那麼多猜測。接下來,請說明概念與依賴類型的不同之處。對我而言,上面評論的描述聽起來完全像依賴類型。 –
問題在於泛型類的名稱,它允許在通用定義中使用文字來代替類型。依賴類型是一種依賴於另一種類型的類型或具有某種受其限制的值的類型。在這種情況下描述的東西的名稱不一定包含任何泛型類型(字面值如1,2,3等「a」,「b」或「c」將作爲局部常量在編譯類型中有效傳遞) – CoryG