`

Lua中 sieve.lua 的源码分析

    博客分类:
  • lua
lua 
阅读更多
[b]-- sieve.lua
-- the sieve of Eratosthenes programmed with coroutines
-- typical usage: lua -e N=500 sieve.lua | column

-- generate all the numbers from 2 to n
function gen (n)
return coroutine.wrap(function ()
for i=2,n do
coroutine.yield(i)[b]

end
end)
end

-- filter the numbers generated by `g', removing multiples of `p'
function filter (p, g)
return coroutine.wrap(function ()
for n in g do --循环取模 g集合中是前面满足条件的所有素数
print("this is ",n,p)
if n%p ~= 0 then coroutine.yield(n) end--返回满足条件的素数
end
end)
end

N=N or 20 -- from command line
x = gen(N) -- generate primes up to N  返回一个协作程序(线程)
while 1 do
local n = x() -- pick a number until done 调用一次,返回下一个素数
if n == nil then break end --如果没有下一个,则程序中止
print(n) -- must be a prime number
x = filter(n, x) -- now remove its multiples
end
[/b][/b]
分享到:
评论

相关推荐

    lua-5.2.2.tar.gz

    5. 如果需要生成lua.lib静态库或lua.dll动态链接库,可以通过修改Makefile中的选项来实现。 编译源代码的好处在于,你可以针对特定平台或特定需求进行定制,例如添加新的内置函数,或者改变某些行为。同时,这也是...

    unity开发lua EmmyLua环境安装.zip

    - 将Lua源代码文件(如`.lua`)添加到项目中。 5. **配置Lua调试**: - 在IntelliJ IDEA中,设置项目属性,指定lua.exe路径,通常是Lua编译器所在的位置。 - 配置调试配置,包括启动脚本、参数和工作目录,以...

    lua-5.3.3.tar.gz安装包

    这里的"lua-5.3.3.tar.gz"是一个源码安装包,意味着你需要通过编译源代码来在你的操作系统上安装Lua 5.3.3版本。 首先,让我们了解一下tar.gz文件。这是一种常见的文件打包格式,由“tar”(归档)和“gzip”(压缩...

    lua-cjson.dll

    编译好的lua-cjson.dll,亲测可用。 版本:lua-cjson-2.1.0 git地址:https://github.com/openresty/lua-cjson lua json库官方比较:http://lua-users.org/wiki/JsonModules

    lua-5.3.4.tar.gz Mylua-5.3.4.tar.gz lua生成动态库 lua包管理 pkgconfig PKG_CONFIG_PATH

    在源码包中,此宏定义在GCC中,打开lua-5.3.4/src/Makefile,可以看到:CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)。 默认编译后,再回头编译vlc开源库,发现:lua/demux.c:55:13: 错误...

    luac52.exe

    这个字节码序列会被写入到一个 `.lua` 的二进制文件中,通常被称为“预编译脚本”。预编译后的脚本在运行时可以直接由 Lua 解释器加载并执行,避免了源代码的逐行解释,提高了程序的启动速度和整体性能。 三、luac...

    wiershark抓omci包相关插件,BinDecHex.lua,omci.lua ,方便个人自取

    在本压缩包中,包含的"BinDecHex.lua"和"omci.lua"是Wireshark的自定义插件,专用于解析OMCI(Operations, Management and Maintenance Information)协议的数据包。 OMCI是光线路终端(OLT)与光网络单元(ONU)...

    lua5.1 cjson.dll模块

    cjson.dll 需要lua5.1.dll 调用require “cjson” cjson.dll 需要lua5.1.dll 调用require “cjson”

    Lua-1.0.113 luajava

    Lua是一种轻量级的脚本语言,主要用于嵌入到其他应用程序中以提供程序配置、扩展或脚本支持。它的设计目标是简洁、易读、易实现,并且具有强大的功能。Lua-1.0.113是Lua的一个早期版本,尽管版本号较低,但在当时...

    lua-5.2.0.tar.gz

    - "Programming in Lua" 书籍(https://www.lua.org/pil/)是学习 Lua 的经典参考资料。 - Lua-users Wiki(http://lua-users.org/wiki/)包含大量社区贡献的示例和扩展库。 通过理解这些知识点,开发者可以更好...

    lua解密工具.apk

    1. 反编译:可以将Lua脚本文件(.lua)反编译为可阅读的源代码,帮助开发者理解脚本的逻辑和结构。 2. 编辑:提供了一个简单的代码编辑器,方便开发者对反编译后的源代码进行修改和调试。 3. 重新编译:可以将修改...

    unity开发lua EmmyLua环境.zip

    在Unity游戏引擎中,Lua是一种常用的脚本语言,用于扩展和增强游戏的逻辑。这篇内容将深入探讨如何在Unity中使用Lua进行开发,特别是通过EmmyLua环境,并结合IntelliJ IDEA作为集成开发环境(IDE)来提升开发效率。 ...

    lua-5.4.3.tar.gz

    4. **lua.h**和**lualib.h**等头文件:开发者在C语言中与Lua交互时需要包含这些头文件。 5. **lua.c**和**luac.c**: Lua解释器和编译器的主程序源文件。 6. **luaconf.h**:预定义的配置选项,允许用户根据需要...

    lua 5.3.5 windows预编译exe/dll文件 lua5.3.5.win.zip

    adding: lua5.3.5-x86/lua.exe (in=14336) (out=7311) (deflated 49%) adding: lua5.3.5-x86/lua.o (in=24873) (out=9654) (deflated 61%) adding: lua5.3.5-x86/lua5.3.5-static.lib (in=662596) (out=244441) ...

    lua-5.3.tar.gz Mylua-5.3.tar.gz lua生成动态库 lua包管理 pkgconfig PKG_CONFIG_PATH

    为了在构建过程中找到自定义或非标准位置的 Lua 库,可能需要将存放 `lua.pc` 的目录添加到 `PKG_CONFIG_PATH` 中,例如:`export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/path/to/your/lua/lib/pkgconfig`。 6. **编译...

    IntelliJ-EmmyLua-1.3.5.194-IDEA203.zip

    标题中的"IntelliJ-EmmyLua-1.3.5.194-IDEA203.zip"表明这是EmmyLua插件的一个版本,版本号为1.3.5.194,适用于IntelliJ IDEA 203系列。这个压缩包包含了在Rider中使用Lua编程所需的所有组件。 首先,我们来深入...

    LUA-JS.zip_js lua.js_js调用 lua_lua JavaScript_lua调用js_lua转js

    JS和LUA交互,主要是JS和LUA交互实现模版,可以作为参考

    lua资源5.14.lua.exe

    "lua资源5.14.lua.exe" 指的是 Lua For Windows 的一个版本,具体为 v5.1.4-45,它是一个针对Windows操作系统的Lua集成开发环境。这个版本的Lua提供了一个方便的开发和测试平台,使得程序员能够在Windows上编写、...

    lua-5.2.4.tar.gz Mylua-5.2.4.tar.gz lua生成动态库 lua包管理 pkgconfig PKG_CONFIG_PATH

    `lua.pc` 文件是 PKG-CONFIG 文件,用于 pkg-config 工具。pkg-config 是一个帮助管理编译依赖的工具,可以自动提供库的路径、链接选项等信息。当你在项目中使用 Lua 时,可以利用 `pkg-config --cflags --libs lua`...

    lua-5.3.4.tar.gz

    lua-5.3.4.tar.gz 截至2017-01-12 Lua最新最稳定版本 包含src和doc目录,官方的tar.gz包,解压后的tar包,再解压后就是lua-5.3.4方件夹

Global site tag (gtag.js) - Google Analytics