home > さまざまな言語で数値計算 > 関数型プログラミングの基本 >

さまざまな言語で数値計算

Only Do What Only You Can Do

10未満の自然数 (range)

VBScript

JScript

JavaScript には関数型プログラミングに必要な機能が足りないので, 自作して補う.
(VBScriptと違って, 足りない機能を自作できるところがえらい)

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]);
    }
}

10未満の自然数

var array = new Array().
    range(1, 9).
    map(function (n) { WScript.Echo(n); });
Z:\>cscript //nologo Js0201.js
1
2
3
4
5
6
7
8
9

PowerShell

対話型実行環境を起動

Z:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

10未満の自然数

1..9
PS Z:\> 1..9
1
2
3
4
5
6
7
8
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未満の自然数

map {print $_, ","} 1..9
  DB<1> map {print $_, ","} 1..9
1,2,3,4,5,6,7,8,9,

終了

  DB<2> q

PHP

対話型実行環境を起動

Z:\>php -a
Interactive mode enabled

10未満の自然数

<?php
array_map(function ($n) {echo $n, ",";}, range(1,9))
?>
<?php
array_map(function ($n) {echo $n, ",";}, range(1,9))
?>

終了

^Z
1,2,3,4,5,6,7,8,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未満の自然数

range(1, 10)
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

終了

>>> quit()

Ruby

対話型実行環境を起動

Z:\>irb

10未満の自然数

1..9
irb(main):001:0> 1..9
=> 1..9
(1..9).each { |i| print i, ", " }
irb(main):002:0> (1..9).each { |i| print i, ", " }
1, 2, 3, 4, 5, 6, 7, 8, 9, => 1..9

終了

irb(main):003:0> exit

Groovy

Pascal

Ada

VB.NET

C#

using System.Linq;
using System.Collections.Generic;

public class CS0201
{
    public static void Main()
    {
        IEnumerable<int> squares = Enumerable.Range(1, 9);

        foreach (int num in squares)
        {
            System.Console.Write(num + ", ");
        }
        System.Console.WriteLine();
    }
}
Z:\>csc CS0201.cs -nologo

Z:\>CS0201
1, 2, 3, 4, 5, 6, 7, 8, 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未満の自然数

(1 to 9)
scala> (1 to 9)
res0: scala.collection.immutable.Range.Inclusive with scala.collection.immutable.Range.ByOne = Range(1, 2, 3, 4, 5, 6, 7, 8, 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未満の自然数

[1..9]
> [1..9];;
val it : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9]

終了

> #quit;;

Clojure

対話型実行環境を起動

Z:\>java -cp C:\ProgramFiles\clojure-1.5.1\clojure-1.5.1.jar clojure.main
Clojure 1.5.1

10未満の自然数

(range 1 10)
user=> (range 1 10)
(1 2 3 4 5 6 7 8 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未満の自然数

[1..9]
Prelude> [1..9]
[1,2,3,4,5,6,7,8,9]

終了

Prelude> :quit
Leaving GHCi.
inserted by FC2 system