100までの整数から素数を列挙せよ…を Smalltalk-76 で


1977 年から、時空を越えてのエントリー。w

"Smalltalk-76"
limit ← 100.
primes ← #() asStream.
primes next ← 2.
for% i from: (3 to: limit by: 2) do% [
   isprime ← true.
   for% prime from: primes contents do% [
      i \ prime = 0 ? [isprime ← false]].
   isprime ? [primes next ← i]].
^primes contents
=> (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97)


蛇足として、アラン・ケイに似ていると言われている Ruby を使って直訳っぽく、かつ、似ているっぽいところを不必要に強調ぎみ…に。

#ruby
limit = 100
primes = []
primes << 2
for i in (3..limit) do
  is_prime = true
  for prime in primes do
    i % prime == 0 ? is_prime = false : nil
  end
  is_prime ? primes << i : nil
end
primes


関連: