当前位置: 首页 > 软件库 > 其他开源 > 编程语言 >

Futhark

函数式编程语言
授权协议 ISC
开发语言 C/C++ Python SHELL Hack
所属分类 编程语言
软件类型 开源软件
地区 不详
投 递 者 史烨
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Futhark 是一个小型全新的函数式编程语言,可编译为高性能的 GPU 代码。使用静态类型、并行数据以及纯函数数组语言。该语言对编译器提前进行重度的优化,通过 OpenCL 生成 GPU 代码。Futhark 并非为图形编程而设计,通过使用 GPU 来加速并行的数组计算,支持常规嵌套的数据并行化处理。

Futhark 使用 Haskell 语言开发。

示例代码:

fun int max(int x, int y) =
  if x > y then x else y

fun {int,int,int,int} redOp({int,int,int,int} x,
                            {int,int,int,int} y) =
  let {mssx, misx, mcsx, tsx} = x in
  let {mssy, misy, mcsy, tsy} = y in
  { max(mssx, max(mssy, mcsx + misy))
  , max(misx, tsx+misy)
  , max(mcsy, mcsx+tsy)
  , tsx + tsy }

fun {int,int,int,int} mapOp(int x) =
  { max(x,0), max(x,0), max(x,0), x }

fun int main([int] xs) =
  let {x, _, _, _} =
    reduce(redOp, {0,0,0,0}, map(mapOp, xs)) in
  x
  • 软件简介 Futhark 是一个小型全新的函数式编程语言,可编译为高性能的 GPU 代码。使用静态类型、并行数据以及纯函数数组语言。该语言对编译器提前进行重度的优化,通过 OpenCL 生成 GPU 代码。Futhark 并非为图形编程而设计,通过使用 GPU 来加速并行的数组计算,支持常规嵌套的数据并行化处理。 Futhark 使用 Haskell 语言开发。 示例代码: fun int max

 相关资料
  • 执行从右到左的函数组合。 使用 Array.reduce() 来执行从右到左的函数组合。最后(最右边的)函数可以接受一个或多个参数;其余的功能必须是一元的。 const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args))); const add5 = x => x + 5; const multiply =

  • 函数式编程 -> 函数响应式编程 现在大家已经了解我们是如何运用函数式编程来操作序列的。其实我们可以把这种操作序列的方式再升华一下。例如,你可以把一个按钮的点击事件看作是一个序列: // 假设用户在进入页面到离开页面期间,总共点击按钮 3 次 // 按钮点击序列 let taps: Array<Void> = [(), (), ()] // 每次点击后弹出提示框 taps.forEach {

  • 函数式编程(functional programming)是一种编程范式(Programming paradigm),或者说编程模式,比如我们常见的过程式编程是一种编程范式,面向对象编程又是另一种编程范式。 函数式编程的一大特性就是:可以把函数当成变量来使用,比如将函数赋值给其他变量、把函数作为参数传递给其他函数、函数的返回值也可以是一个函数等等。 Python 不是纯函数式编程语言,但它对函数式

  • 函数式编程 面向值(value-oriented )编程有很多优势,特别是用在与函数式编程结构相结合。这种风格强调值的转换(译注:由一个不变的值生成另一个不变的值)而非状态的改变,生成的代码是指称透明的(referentially transparent),提供了更强的不变型(invariants),因此容易实现。Case类(也被翻译为样本类),模式匹配,解构绑定(destructuring bi

  • ​函数式编程是一种声明式编程。 First-class function 纯函数 高阶函数

  • 什么是函数式编程 到现在我们已经讲了很多了,但还没有真正涉及到函数式编程。 目前所讲的所有特性 - 丰富的数据类型(rich data types), 模式匹配(pattern matching), 类型推导(type inference), 嵌套函数(nested functions) - 可以想象它们都可以在一种”超级C“语言中存在。这些特性当然很酷,它们使得代码简洁易读,减少bug,但是它们

  • 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。 而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。 我们首先要搞明白计算机(Computer)和计算

  • 解释含义 大概就是允许你将函数传来传去。 解释高阶函数 意思就是说,函数名可以像一般的变量一样可以传递,看例子: abs(-1) #求绝对值的全局函数 f = abs f(-1) >>> 1 这说明了,函数名可以像变量一样正常的传递。于此向对应的js const a = () => { console.log('hello world') } let b = a b() 效果是一样的,这就