当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Lua Fun

LuaJIT 函数编程库
授权协议 MIT/X
开发语言 Lua
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 巢皓君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Lua Fun 是一个高兴呢的 LuaJIT 的函数编程库。

该库提供一组超过 50 中编程元素,这些元素在 Standard ML, Haskell, Erlang, JavaScript, Python and even Lisp 等编程语言中常用的。高阶函数诸如 map, filter, reduce, zip 将帮你简化应用的编写。

示例代码:

> require "fun" ()
> n = 100
> reduce(operator.add, 0, map(function(x) return x^2 end, range(n)))
> -- calculate sum(x for x^2 in 1..n)
328350
  • 1.函数介绍 1.1 LUA函数,跟别的编程语言函数定义大同小异,从另一方面说,它可以被看成是对表达式或语句的抽象机制,怎么说呢,函数分为有返回值与无返回值两种。对于没有返回值的函数而言,相当于将一条或多条语句封装起来执行,以便达到完成某项功能的目的。对于有返回值(return)的函数,相当于是一条表达,即最终会以一个结果返回被调用处。 1.2 LUA函数的定义如下 function xxx()

  • 1. 变量是弱类型 2. --代表单行注释  --[[ ]]   代表多行注释 3. 局部变量使用local 4.调用其它lua文件,使用require 5. Lua中数据类型,可以用type()方法得到类型    nil:Lua特殊类型,一个全局变量没有被赋值以前默认值为nil,给全局变量赋nil可以删除该变量    boolean    number   不分int float double

  • lua 反射        debug实现反射功能:获取函数信息、函数局部变量、函数使用的外部局部变量等                                                       函数信息           getinfo(thread, f, what):获取函数的表信息 Returns a table with information about a fun

  • 一、需要注意的数据类型 1. 表table Lua 实现表的算法颇为巧妙。每个表包含两部分:数组(array)部分和哈希(hash)部分,数组部分保存的项(entry)以整数为键(key),从 1 到某个特定的 n,所有其他的项(包括整数键超出范围的)则保存在哈希部分。 哈希部分使用哈希算法来保存和查找键值。它使用的是开放寻址(open address)的表,意味着所有的项都直接存在哈希数组里。键

  • 定义的时候冒号默认接收self参数 调用的时候冒号默认传递调用者自己为参数 而句号要显示传递或接收self参数 -- 例如:句号定义,需要显示传递或接收 1 a = { x = 1 } 2 function a.fun(self) 3 print(self.x) 4 end 5 6 a.fun(a)--输出1,将a自己做为参数传给fun函数的self 这样调用要传递self

  • lua debug调试                                                                 debug 调试        相关函数 # debug.debug():调试模式 命令行进入调试模式,可调试函数、表达式等,输入cont退出debug模式 # debug.gethook(optional thread) 返回三个表示线程钩子设

  • Lua注解 @class类声明注解 EmmyLua利用 @class 注解来模拟面向对象中的类,可以继承,可以定义字段/属性 完整格式: --@class MY_TYPE[:PARENT_TYPE] [@comment] 应用目标: local 变量 global 变量 示例: ---@class Car : Transport @define class Car extends Transpo

  • lua 错误处理                                                  语法错误           语法错误编译不能通过,通常是由程序使用不当引起         示例:nil与整数相加 Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio > a==2 false -- a由于未赋值,默认为nil,

  • 简单的类实现 LUA中最基本的结构是table,用table来描述对象的属性。lua 中的 function 可以用来表示方法。 那么LUA中的类可以通过 table + function 模拟出来。 Student = { age = 1, growUp = function() -- print(age) 这样写与表中没有任何关系,他打印age这个全局变量

  • lua 常用内置函数                                                              _VERSION 变量          查看当前lua的版本号 A global variable (not a function) that holds a string containing the running Lua version. Th

  • 创建 fun=function() print(123) end 方式1 co=coroutine.create(fun) print(type(co))–返回值是thread 方式2 co1=coroutine.wrap(fun) print(type(co1))–返回值是function 使用 coroutine.resume(co)- -执行方式1创建的协程 co1()----执行方式2创建

  • lua 函数                                                             函数             语法格式 function_scope function function_name( argument1, argument2, argument3, ...) function_body return result_

  • lua_Stat* lua = luaL_newstate(); // 一个新的 lua 状态机 luaL_openlibs( lua ); // 加载标准lib int my_fun_name( lua_State *L ) { int argc = lua_gettop( L ); // 获得函数参数个数 for( int i=1; i <= argc; ++i ) { //

  • 函数 --函数 的返回值和参数不需要定义类型 --lua 中使用end代表函数的结束 不需要{} function fun1(n) if n==1 then return n else return n * fun1(n - 1) end end print(fun1(3)) -- 输出6 --可以把函数当做一个类型使用 fun2 = fun1 print(fun2(3)

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

  • Python 提供了一个 functools 的模块,该模块为高阶函数提供支持,partial 就是其中的一个函数,该函数的形式如下: functools.partial(func[,*args][, **kwargs]) 这里先举个例子,看看它是怎么用的。 假设有如下函数: def multiply(x, y): return x * y 现在,我们想返回某个数的双倍,即: >>> mu

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

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

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

  • 函数式编程可以说是非常古老的编程范式,但是近年来函数式编程越来越受到关注。不管是 Google 力推的 Go, 学术派的 Scala 与 Haskell,还是 lisp 跑在 JVM 上的新方言 Clojure,这些新的函数式编程语言也都越来越受到关注。

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

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