text: Futhark是一個函式式、資料並行、陣列程式語言，最初於哥本哈根大學計劃的一部份而開發。它聚焦於確使以函式式風格書寫的資料並行程式，可以高效能的執行於大規模並行硬體上，特別是在GPU上。Futhark強烈的受到啟發，但是為了確使更具進取性的編譯器最佳化，對如何表達並行施加了約束。特別是，不支援非正規的巢狀資料並行。概述.Futhark是屬於ML家族的語言，它具有從OCaml、Standard ML和Haskell派生的縮排不敏感的語法。型別系統基於了，還並具有各種擴充套件，比如和大小依賴型別。Futhark不意圖成為編寫完全應用的通用程式語言，轉而聚焦於書寫計算“核心”，它們由用常規語言書寫的應用程式來呼叫。例子.點積.下列程式計算包含雙精度數值的兩個向量的點積：def dotprod xs ys = f64.sum (map2 (*) xs ys))它還可以等價的書寫為具有顯式型別標註的形式：def dotprod [n] (xs: [n]f64) (ys: [n]f64) : f64 = f64.sum (map2 (*) xs ys))這製作出了大小依賴型別，即這個函式只能以相同大小的兩個陣列來呼叫，型別檢查器會拒絕不能靜態的確定符合這個要求的任何程式。矩陣乘法.下列程式使用上述點積定義進行矩陣乘法：def matmul [n][m][p] (A: [n][m]f64) (B: [m][p]f64) : [n][p]f64 =map (\A_row -&gt;map (\B_col -&gt; dotprod A_row B_col)(transpose B))A注意它的型別強制這個函式只能以具有相容大小的矩陣來呼叫。進一步的說，這是巢狀資料並行的例子。引用.
metadata: erhwenkuo/wikipedia-zhtw
metadata: Futhark語言
metadata: https://zh.wikipedia.org/wiki?curid=7399322