さまざまな言語で数値計算
Only Do What Only You Can Do
10未満の3の倍数 (filter)
VBScript
JScript
range 機能を自作
Array.prototype.range = function(start, end) { var array = new Array(); var j = 0; for (var i = start; i <= end; i++) { array[j++] = i; } return array; }
map 機能を自作
Array.prototype.map = function(func) { for (var i = 0; i < this.length; i++) { func(this[i]); } }
filter 機能を自作
Array.prototype.filter = function(func) { var array = new Array(); var j = 0; for (var i = 0; i < this.length; i++) { if (func(this[i])) array[j++] = this[i]; } return array; }
10 未満の 3 の倍数
var array = new Array(). range(1, 9). filter(function (n) { return (n % 3 == 0); }). map(function (n) { WScript.Echo(n); });
Z:\>cscript //nologo Js0202.js 3 6 9
PowerShell
対話型実行環境を起動
Z:\>powershell Windows PowerShell Copyright (C) 2009 Microsoft Corporation. All rights reserved.
10未満の3の倍数
1..9 | where { $_ % 3 -eq 0}
PS Z:\> 1..9 | where { $_ % 3 -eq 0} 3 6 9
終了
PS Z:\> exit
Perl
対話型実行環境を起動
Z:\>perl -de 0 Loading DB routines from perl5db.pl version 1.37 Editor support available. Enter h or 'h h' for help, or 'perldoc perldebug' for more help. main::(-e:1): 0
10未満の3の倍数
map {print $_, ","} grep {$_ % 3 == 0} 1..9
DB<1> map {print $_, ","} grep {$_ % 3 == 0} 1..9 3,6,9,
終了
DB<2> q
PHP
対話型実行環境を起動
Z:\>php -a Interactive mode enabled
10未満の3の倍数
<?php $ary = array_filter(range(1,9), function ($n) {return ($n % 3 == 0);}); array_map(function ($n) {echo $n, ",";}, $ary); ?>
<?php $ary = array_filter(range(1,9), function ($n) {return ($n % 3 == 0);}); array_map(function ($n) {echo $n, ",";}, $ary); ?>
終了
^Z 3,6,9,
Python
対話型実行環境を起動
Z:\>python Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
10未満の3の倍数
[n for n in range(1, 10) if (n % 3 == 0)]
>>> [n for n in range(1, 10) if (n % 3 == 0)] [3, 6, 9]
filter(lambda n: (n % 3 == 0), range(1, 10))
>>> filter(lambda n: (n % 3 == 0), range(1, 10)) [3, 6, 9]
終了
>>> quit()
Ruby
対話型実行環境を起動
Z:\>irb
10未満の3の倍数
(1..9).select { |n| n % 3 == 0}
irb(main):001:0> (1..9).select { |n| n % 3 == 0} => [3, 6, 9]
終了
irb(main):002:0> exit
Groovy
Pascal
Ada
VB.NET
C#
using System.Linq; using System.Collections.Generic; public class CS0202 { public static void Main() { IEnumerable<int> squares = Enumerable.Range(1, 9).Where(num => num % 3 == 0); foreach (int num in squares) { System.Console.Write(num + ", "); } System.Console.WriteLine(); } }
Z:\>csc CS0202.cs -nologo Z:\>CS0202 3, 6, 9,
Java
C++
Objective-C
D
Go
Scala
対話型実行環境を起動
Z:\>scala Welcome to Scala version 2.10.2 (Java HotSpot(TM) Client VM, Java 1.7.0_21). Type in expressions to have them evaluated. Type :help for more information.
10未満の3の倍数
(1 to 9).filter(n => n % 3 == 0)
scala> (1 to 9).filter(n => n % 3 == 0) res0: scala.collection.immutable.IndexedSeq[Int] = Vector(3, 6, 9)
終了
scala> :quit
F#
対話型実行環境を起動
Z:\>fsi Microsoft (R) F# 2.0 Interactive build 4.0.40219.1 Copyright (c) Microsoft Corporation. All Rights Reserved. For help type #help;;
10未満の3の倍数
[1..9] |> List.filter (fun x -> x % 3 = 0)
> [1..9] - |> List.filter (fun x -> x % 3 = 0) - ;; val it : int list = [3; 6; 9]
終了
> #quit;;
Clojure
対話型実行環境を起動
Z:\>java -cp C:\ProgramFiles\clojure-1.5.1\clojure-1.5.1.jar clojure.main Clojure 1.5.1
10未満の3の倍数
(filter #(= (mod % 3) 0) (range 1 10))
user=> (filter #(= (mod % 3) 0) (range 1 10)) (3 6 9)
(filter #(= (rem % 3) 0) (range 1 10))
user=> (filter #(= (rem % 3) 0) (range 1 10)) (3 6 9)
終了
user=> (. System exit 0)
Haskell
対話型実行環境を起動
Z:\>ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done.
10未満の3の倍数
filter (\x -> mod x 3 == 0) [1..9]
Prelude> filter (\x -> mod x 3 == 0) [1..9] [3,6,9]
終了
Prelude> :quit Leaving GHCi.