| ------------------------------------------------------------------------------- |
| -- Copyright (c) 2006-2013 Fabien Fleutot and others. |
| -- |
| -- All rights reserved. |
| -- |
| -- This program and the accompanying materials are made available |
| -- under the terms of the Eclipse Public License v1.0 which |
| -- accompanies this distribution, and is available at |
| -- http://www.eclipse.org/legal/epl-v10.html |
| -- |
| -- This program and the accompanying materials are also made available |
| -- under the terms of the MIT public license which accompanies this |
| -- distribution, and is available at http://www.lua.org/license.html |
| -- |
| -- Contributors: |
| -- Fabien Fleutot - API and implementation |
| -- |
| ------------------------------------------------------------------------------- |
| |
| -{extension "clist"} |
| |
| -- integers from 2 to 50, by steps of 2: |
| x = { i for i = 2, 50, 2 } |
| |
| -- the same, obtained by filtering over all integers <= 50: |
| y = { i for i = 1, 50 if i%2==0 } |
| |
| -- prime numbers, implemented in an inefficient way: |
| local sieve, n = { i for i=2, 100 }, 1 |
| while n < #sieve do |
| sieve = { |
| i for i in values(sieve[1 ... n]); |
| i for i in values(sieve[n+1 ... #sieve]) if i%sieve[n] ~= 0 } |
| n += 1 |
| end |
| |
| print "Prime numbers < 100, computed with lists by comprehension:" |
| table.print(sieve) |
| |