今どきのプログラミング言語ってどれも REPL (interactive モード) があって当たり前だよね
っと思ったのでどの言語があるか調べてみたメモ
対応してないの合わせて全 30 言語

REPL を起動して 1 + 1 を計算させて閉じるだけです
Lisp 系でもなければみんな本当に 「1 + 1」 って入力してるだけ

ツールによっては REPL の終了方法が用意されてないのもあるので
ない場合はプログラムの自分のプロセスを終了するか Ctrl-C/Crtl-D で終了します

一部 REPL といいつつ Evaluate するだけで Print してくれないので自分で print 命令を出しています
PHP とか Perl とか

各環境は C#, F# は Windows10 の VisualStudio 2017 Community で それ以外は fedora27 で実行したものです
基本は dnf の fedora 標準パッケージで最新のはずです
Racket は RPM Sphere からなので古めで Elm は npm から
Kotlin, Ring, Io は公式サイトから最新のバイナリを zip 系または rpm で取得しました

ところで 以前言語いろいろ書いたときは書いたのに調べてないのもあります
Pascal とか Fortran とか HSP とか Basic とか Dart とか AS3 とか今後使うどころか見る機会だってまず無いでしょうし

JavaScript

ブラウザなら F12 キーの開発者ツール

Node.js は node コマンド
$ node
> 1 + 1
2
> .exit

Python2/3

python, python3 コマンド
$ python
Python 2.7.14 (default, Mar 14 2018, 13:36:31)
[GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 1
2
>>> exit()
$ python3
Python 3.6.5 (default, Apr 4 2018, 15:01:18)
[GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 1
2
>>> exit()

C#

VS についてる csi コマンド
>csi
Microsoft (R) Visual C# インタラクティブ コンパイラ バージョン 2.3.2.61928
Copyright (C) Microsoft Corporation. All rights reserved.

詳細については、「#help」と入力します。
> 1 + 1
2
> Environment.Exit(0)

VS 中なら 「C# インタラクティブ」 を開く

F#

VS についてる fsi コマンド
> fsi

Microsoft (R) F# Interactive Version 4.1
Copyright (c) Microsoft Corporation. All Rights Reserved.

ヘルプを表示するには次を入力してください: #help;;

> 1 + 1;;
val it : int = 2

> #quit;;

VS 中なら 「F# インタラクティブ」 を開く

Ocaml

ocaml コマンド
$ ocaml
OCaml version 4.05.0

# 1 + 1;;
- : int = 2
# #quit;;

Rust

非公式の rusti
古いバージョンでしか動かないので rustup でバージョン指定
$ rustup run nightly-2016-08-01 rusti
rusti=> 1 + 1
2
rusti=> std::process::exit(0)

Clojure

clojure コマンド
$ clojure
Clojure 1.7.0
user=> (+ 1 1)
2
user=> (System/exit 0)

Scheme

guile コマンド
$ guile
GNU Guile 2.0.14
Copyright (C) 1995-2016 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (+ 1 1)
$1 = 2
scheme@(guile-user)> ,q

Racket

racket コマンド
$ racket
Welcome to Racket v6.7.
> (+ 1 1)
2
> ,quit

Haskell

ghci コマンド
$ ghci
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
Prelude> 1 + 1
2
Prelude> :quit
Leaving GHCi.

elm

elm-repl コマンド
$ elm-repl
---- elm-repl 0.18.0 -----------------------------------------------------------
:help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl>
--------------------------------------------------------------------------------
> 1 + 1
2 : number
> :exit

Erlang

erl コマンド
$ erl
Erlang/OTP 19 [erts-8.3.5.4] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.3.5.4 (abort with ^G)
1> 1 + 1.
2
2> q().
ok
3>

Elixir

iex コマンド
$ iex
Erlang/OTP 19 [erts-8.3.5.4] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Interactive Elixir (1.4.5) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 1 + 1
2
iex(2)> System.halt(0)

Ruby

irb コマンド
$ irb
irb(main):001:0> 1 + 1
=> 2
irb(main):002:0> exit()

Perl5/6

perl コマンドに -de0 オプションをつける
デバッガを使って REPL 機能を使う
-d でデバッガ起動
-e0 で無意味なプログラム 「0」 を実行させてデバッグモードに入る

表示するためには print が必要
$ perl -de0

Loading DB routines from perl5db.pl version 1.51
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(-e:1): 0
DB<1> print 1 + 1
2
DB<2> q

perl6 は perl6 コマンドだけ
$ perl6
You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor

To exit type 'exit' or '^D'
> 1 + 1
2
> exit

PHP

php コマンドに -a オプション
表示するためには echo などが必要
$ php -a
Interactive shell

php > echo 1 + 1;
2
php > exit

Lua

lua コマンド
$ lua
Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
> 1 + 1
2
> os.exit()

R

R コマンド
$ R

R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R は、自由なソフトウェアであり、「完全に無保証」です。
一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。

R は多くの貢献者による共同プロジェクトです。
詳しくは 'contributors()' と入力してください。
また、R や R のパッケージを出版物で引用する際の形式については
'citation()' と入力してください。

'demo()' と入力すればデモをみることができます。
'help()' とすればオンラインヘルプが出ます。
'help.start()' で HTML ブラウザによるヘルプがみられます。
'q()' と入力すれば R を終了します。

> 1 + 1
[1] 2
> q()
Save workspace image? [y/n/c]: n

Julia

julia コマンド
$ julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.6.0 (2017-06-19 13:05 UTC)
_/ |\__'_|_|_|\__'_| |
|__/ | x86_64-redhat-linux

julia> 1 + 1
2

julia> exit()

Prolog

gprolog コマンド
$ gprolog
GNU Prolog 1.4.4 (64 bits)
Compiled Aug 3 2017, 08:15:35 with gcc
By Daniel Diaz
Copyright (C) 1999-2013 Daniel Diaz
| ?- X is 1 + 1, write(X).
2

X = 2

(1 ms) yes
| ?- halt.

Io

io コマンド
$ io
Io 20110905
Io> 1 + 1
==> 2
Io> exit

C++

cling コマンド
root というプロジェクトで作られてるもの
$ cling
****************** CLING ******************
* Type C++ code and press enter to run it *
* Type .q to exit *
*******************************************
[cling]$ 1 + 1
(int) 2
[cling]$ .q

Groovy

groovysh コマンド
$ groovysh
Groovy Shell (2.4.8, JVM: 1.8.0_162)
Type ':help' or ':h' for help.
-------------------------------------------------------------------------------
groovy:000> 1 + 1
===> 2
groovy:000> :q

Scala

scala コマンド
$ scala
Welcome to Scala version 2.10.6 (OpenJDK 64-Bit Server VM, Java 1.8.0_162).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 + 1
res0: Int = 2

scala> :q

kotlin

kotlinc コマンド
$ kotlinc
Welcome to Kotlin version 1.2.31 (JRE 1.8.0_162-b12)
Type :help for help, :quit for quit
>>> 1 + 1
2
>>> :quit

Swift

swift コマンド
$ swift-4.1.1-RELEASE-ubuntu16.04/usr/bin/swift
Welcome to Swift version 4.1.1 (swift-4.1.1-RELEASE). Type :help for assistance.
1> 1 + 1
$R0: Int = 2
2> :quit

※ Ubuntu 系ディストリビューションでやって追記しました

Ring

付属のアプリケーションとして REPL が用意されてるのでそれを実行
表示するには see や「?」が必要
$ ring Fayed_Ring_1.7_All_Platforms_Fedora/ring/applications/ringrepl/repl.ring
The Ring programming language version 1.7
REPL (Read-Eval-Print-Loop)

ring:> ? 1 + 1
2

ring:> exit

できない

安定していてコレといえる REPL 環境がない言語

  • D
  • Ceylon
  • Go

まとめ

たいていのツールは標準でついてる
ファイルを与えず実行すれば インタラクティブモードになるのが多い

PHP や Perl はコマンドのオプションでインタラクティブモードを指定必要
C# や Ruby などは別名コマンドだけど標準のものなので実行環境のインストールで一緒についてる
C++, Rust などは標準ツールとは違うサードパーティ製だけど実質コレみたいなものがある
Rust は REPL に必要な機能が廃止になって古いバージョンでしか動かなくて サードパーティ製ならではの問題って感じ
D や Ceylon は個人プロジェクトの完成してるかすら怪しいのなら一応でてきた
Go は活発な感じの個人プロジェクトがいくつかあったけどそれぞれ使える機能使えない機能があったりでベータの域を出ないものみたい