2017-06-05 31 views
1

我正在調查Hana,我很驚訝地看到它有一個type(「排序類型的容器,類似於沒有實際值的單元組」的概念),但是types(一系列type)是一個實驗性功能。爲什麼boost :: hana :: experimental :: types是一個實驗性功能?關於類型列表有什麼棘手的問題?

有誰知道爲什麼?與單一類型的容器相比,類型列表的複雜性如何?

+1

'實驗'子''空間'的實際相關性是什麼? – Walter

+1

@沃爾特請提出一個新問題,而不是將問題作爲對其他無關問題的評論。 –

+0

在任何情況下,@ Walter's都是一個簡單的問題:從用戶手冊:「這個目錄包含的實驗性功能可能會或可能不會在某些時候進入到圖書館,但被認爲是有用的,足以向公衆提供。此子目錄中的功能駐留在hana :: experimental命名空間中,並且不要指望這些功能是穩定的;它們可能會在庫的各個發行版之間移動,重命名,更改或移除這些功能可能還需要額外的外部依賴項;每個功能記錄了它所需的附加依賴關係,如果有的話。「 – blue

回答

3

答案基本上是什麼傑森說:

我想看到的類型爲hana::Sequence,但它不會通過的法律,因爲它不會舉辦任何類型的值(如與價值觀運行時狀態)。

「問題」是一個hana::types不能進行一個hana::Sequence,因爲hana::Sequence應該是能夠保存任意的東西,不僅類型。雖然這可能看起來不是什麼大不了的事情,但事實確實如此。例如,我們也無法滿足hana::Monad,因爲這需要hana::flatten,其簽名是M<M<T>> -> M<T>,對於任意hana::MonadM。由於hana::types只能存放類型,因此您無法整個事情沒有特殊的外殼。

無論解決方案是什麼,我想找到一個解決方案,不會破壞Hana的概念完整性,同時仍然允許編譯時更有效的類型列表。

+0

謝謝你回答,並把這麼多的精神努力,讓事情正確和優雅。我會花我的時間消化答案:) – blue

+0

謝謝。當事情是優雅的時候,這很好,但當它們既優雅又讓我們做我們想做的一切時更好。顯然,這裏還有很多工作要做。 –