【问题标题】:Do you know any other programming languages that have interactive mode like Python? [closed]你知道像 Python 这样具有交互模式的其他编程语言吗? [关闭]
【发布时间】:2010-04-04 17:22:44
【问题描述】:

Python 语言有一个众所周知的特性,名为 interactive mode,解释器可以直接从 tty 读取命令。
我通常使用这种模式来测试给定的模块是否在类路径中,或者用来测试一些 sn-ps。

你知道任何其他具有交互模式的编程语言吗?

如果可以,请提供语言名称,并在可能的情况下提供网络参考。
如果它已经被提及,你可以投票给它。

【问题讨论】:

  • 这应该是社区维基。
  • 可能,但即使不是也可以,tbh。
  • 社区维基按要求:)。
  • 更容易询问哪些语言没有提供交互模式的实现。
  • @Paul Hankin 太晚了 :) !我不知道这是一个如此“常见”的功能。

标签: python language-agnostic programming-languages language-features


【解决方案1】:

大多数(全部?)lisp(包括 common lisp、scheme 和 clojure)、sml、ocaml、haskell、F#、erlang、scala、ruby、python、lua、groovy、prolog。

【讨论】:

  • 是的,很棒的清单。除了 ocaml 很烂。
  • 相当完整的答案。但缺少序言。
  • 缺少 JavaScript,它具有 Rhino 或 SpiderMonkey 等交互式解释器,以及所有当前版本浏览器中的交互式命令行。
  • @p4bl0:如果“ocaml one 很烂”是指不允许编辑,请使用 rlwrap ocaml。更好的是,在你的 shell 中给它起别名——没有它我永远不会使用ocaml。 @bcherry:如果你包含交互式解释器,也添加 Perl (use.perl.org/articles/07/08/30/1729255.shtml)
【解决方案2】:

【讨论】:

  • PHP 链接错误。 phpsh.org
  • 只运行 php -a,但与 Python 的 shell 相比,它糟糕
  • phpsh 还算不错。有趣的是,它是用 Python 编写的。
【解决方案3】:

bash / tcsh / csh / ksh /...

它们都是编程语言并且有一个 CLI :)

【讨论】:

    【解决方案4】:

    Haskell 甚至有两个(主流)交互式解释器,Hugsghci

    【讨论】:

      【解决方案5】:

      Tcl/tk 有一个。从第一天起它就在那里。这不是 Python 独有的功能。

      【讨论】:

      • 实际上,Tcl 交互式解释器最初是作为 TclX 扩展的一部分引入的。 tclsh 计划是 1993 年 6 月推出的一项创新...
      • 感谢您的历史课。我在 95 年开始使用 Tcl,这就是为什么我认为它一直存在。
      【解决方案6】:

      正如已经指出的那样,许多语言都可以交互使用,尽管它们的使用方便程度差异很大。我最熟悉的交互环境,也是我尝试过的所有交互式编程免费环境中最合适的一个(不是我都试过了)是 Slime,这是一种适用于 emacs 的模式允许与正在运行的 Common Lisp 进行交互,也可以与 Clojure 一起使用,这是一种用于 JVM 的 Lisp。

      如果 Lisp 不是您的最爱,那么各种 Smalltalk 环境都值得一提。许多 Smalltalk 系统的有趣之处之一是它们几乎暴露了在编程环境中实现系统的所有代码——如果您愿意,您可以在使用它时浏览甚至重写部分编程环境,就像您使用它一样会写新代码。事实上,提供给您的系统和您正在编写的代码之间的界限非常模糊。 Squeak 是一个有趣的免费 Smalltalk,Cincom 提供了他们的商业 Smalltalk 的评估版,恕我直言,这是一个很棒的环境。

      无论如何,如果您对玩交互式环境感兴趣,那么您可能会比玩这两个环境更糟糕,尽管当然还有很多其他系统允许在一定程度上进行交互式编程。

      【讨论】:

        【解决方案7】:

        Lisp 和 Scheme 有交互模式。

        【讨论】:

        • 也用过scheme的这个特性...
        • Lisp 可能是第一个发明这种交互式编程方式的人。
        【解决方案8】:

        C++。

        Seriously.

        【讨论】:

        【解决方案9】:

        Ruby 有irb,它是一个交互式解释器,Ruby 与 Python 非常相似。

        irb at Wikipedia
        Ruby at Wikipedia

        【讨论】:

          【解决方案10】:

          Perl - 有趣的是在此之前有这么多答案

          【讨论】:

            【解决方案11】:

            Ruby 有它。Groovy 也有它(允许您有效地测试 Java 代码)。

            【讨论】:

              【解决方案12】:

              我猜第一个是 LISP。 试试剪辑

              【讨论】:

                【解决方案13】:

                如果您不指定要运行的文件名,大多数脚本语言将从标准输入读取并执行在控制台输入的代码。 php 和 perl 都可以。

                Ruby 有 irb。

                Lua 有一个更正式的交互模式,比如 python,它会在提示符处显示代码的缩进级别。这非常有用,因为 lua 通常用作嵌入式脚本语言,您不必运行完整的应用程序来测试代码 sn-ps。

                【讨论】:

                  【解决方案14】:

                  Lua 也有交互模式。

                  【讨论】:

                    【解决方案15】:

                    哦,我忘记了 BASIC 的 :)

                    【讨论】:

                      【解决方案16】:

                      Prolog 也有一个

                      【讨论】:

                        【解决方案17】:

                        Java 也有!

                        它叫做 Beanshell:http://www.beanshell.org/

                        【讨论】:

                        • Beanshell 是一种脚本语言,不是吗?
                        • 是和不是。您可以使用命令 bsh 启动交互式会话。它接受带有所有样板的完整 Java 代码,但它也解析 Java 的简化版本,感觉更像是一种脚本语言。
                        【解决方案18】:

                        FORTH 立刻浮现在脑海。

                        APL 也是如此。

                        我记得很多很多个月前在 SDS-930(我认为)上看到了交互式 FORTRAN 实现。

                        【讨论】:

                          【解决方案19】:

                          您可以使用LINQPad 进行几乎交互式的 C# 和 VB.NET

                          【讨论】:

                            【解决方案20】:

                            还有一个repl for C

                            【讨论】:

                              【解决方案21】:

                              R 统计程序 ;)

                              【讨论】:

                                【解决方案22】:

                                VIC20 和 C64 的基础

                                【讨论】:

                                  【解决方案23】:

                                  C# 有一个。

                                  【讨论】:

                                  • @Ken 您发布的链接指向这篇文章。您的意思是发布交互式 C# shell 的链接吗?
                                  • csharp.exe(和 gsharp.exe)包含在 Mono 最新版本的发行版中。
                                  • 这就是复制粘贴编码不好的原因:我不太擅长复制和粘贴。 :P
                                  【解决方案24】:

                                  徽标编程语言。

                                  有些实现非常具有交互性,有些人甚至不使用任何其他模式。

                                  【讨论】:

                                    【解决方案25】:

                                    任何解释型语言都极有可能拥有一个。

                                    【讨论】:

                                      【解决方案26】:

                                      Erlang 可以,Haskell 也可以,我猜Ruby 可以。还有像Firebug

                                      这样的Javascript CLI

                                      【讨论】:

                                        【解决方案27】:

                                        【讨论】:

                                        • @systempuntoout:每个重要的“只是一个外壳”都有自己的语言,但不一定有用、可扩展或图灵完备。
                                        • @systempuntoout, @wRAR:即使它有用、可扩展且图灵完备,它也可能像cmd.exe 这样相当可怕...
                                        【解决方案28】:

                                        Boo 是 Python 和 C# 之间的一个很好的中间地带 - 类型推断和过程兼容编程,与 .Net 兼容,并且能够编译为 CLR 程序集和 .EXE。

                                        【讨论】:

                                          【解决方案29】:

                                          顾名思义,面向科学的专有 Interactive Data Language(通常简称为 IDL,但在此详细说明以避免与其他 IDL 混淆)具有许多用户使用的交互模式比他们在里面编程。

                                          【讨论】:

                                            【解决方案30】:

                                            Visual Basic .NET 具有交互模式。

                                            【讨论】:

                                              猜你喜欢
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 2023-03-21
                                              • 2010-09-05
                                              • 1970-01-01
                                              • 2018-02-22
                                              • 1970-01-01
                                              相关资源
                                              最近更新 更多