A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
7
Task/Interactive-programming/0DESCRIPTION
Normal file
7
Task/Interactive-programming/0DESCRIPTION
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Many language implementations come with an ''interactive mode''. This is a [[wp:command-line interpreter|command-line interpreter]] that reads lines from the user and evaluates these lines as statements or expressions. An interactive mode may also be known as a ''command mode'', a ''[[wp:read-eval-print loop|read-eval-print loop]]'' (REPL), or a ''shell''.
|
||||
|
||||
Show how to start this mode, then, as a small example of its use, interactively create a function of two strings and a separator that returns the strings separated by two concatenated instances of the separator.
|
||||
|
||||
For example, <tt>f('Rosetta', 'Code', ':')</tt> should return <tt>'Rosetta::Code'</tt>
|
||||
|
||||
Note: this task is not about creating your own interactive mode.
|
||||
2
Task/Interactive-programming/1META.yaml
Normal file
2
Task/Interactive-programming/1META.yaml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
note: Basic language learning
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
10 DEF FN f$(a$, b$, s$) = a$+s$+s$+b$
|
||||
PRINT FN f$("Rosetta", "Code", ":")
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
command.com
|
||||
color f0
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
$ brat
|
||||
# Interactive Brat
|
||||
brat:1> f = { a, b, s | a + s + s + b }
|
||||
#=> function: 0xb737ac08
|
||||
brat:2> f "Rosetta" "Code" ":"
|
||||
#=> Rosetta::Code
|
||||
brat:3> quit
|
||||
Exiting
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
C:\Burlesque>Burlesque.exe --shell
|
||||
blsq ) {+]?+}hd"Rosetta""Code"':!a
|
||||
"Rosetta:Code"
|
||||
blsq )
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
Clojure 1.1.0
|
||||
user=> (defn f [s1 s2 sep] (str s1 sep sep s2))
|
||||
#'user/f
|
||||
user=> (f "Rosetta" "Code" ":")
|
||||
"Rosetta::Code"
|
||||
user=>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
$ rlwrap sbcl
|
||||
This is SBCL 1.0.25, an implementation of ANSI Common Lisp.
|
||||
More information about SBCL is available at <http://www.sbcl.org/>.
|
||||
...
|
||||
* (defun f (string-1 string-2 separator)
|
||||
(concatenate 'string string-1 separator separator string-2))
|
||||
|
||||
F
|
||||
* (f "Rosetta" "Code" ":")
|
||||
|
||||
"Rosetta::Code"
|
||||
*
|
||||
|
|
@ -0,0 +1 @@
|
|||
$ rune # from an OS shell. On Windows there is also a desktop shortcut.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
? def f(string1 :String, string2 :String, separator :String) {
|
||||
> return separator.rjoin(string1, "", string2)
|
||||
> }
|
||||
# value: <f>
|
||||
|
||||
? f("Rosetta", "Code", ":")
|
||||
# value: "Rosetta::Code"
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
(defun my-join (str1 str2 sep)
|
||||
(concat str1 sep sep str2))
|
||||
my-join
|
||||
(my-join "Rosetta" "Code" ":")
|
||||
"Rosetta::Code"
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
*** Welcome to IELM *** Type (describe-mode) for help.
|
||||
ELISP> (defun my-join (str1 str2 sep)
|
||||
(concat str1 sep sep str2))
|
||||
my-join
|
||||
ELISP> (my-join "Rosetta" "Code" ":")
|
||||
"Rosetta::Code"
|
||||
ELISP>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
$erl
|
||||
1> F = fun(X,Y,Z) -> string:concat(string:concat(X,Z),string:concat(Z,Y)) end.
|
||||
#Fun<erl_eval.18.105910772>
|
||||
2> F("Rosetta", "Code", ":").
|
||||
"Rosetta::Code"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
( scratchpad ) : cool-func ( w1 w2 sep -- res ) dup append glue ;
|
||||
( scratchpad ) "Rosetta" "Code" ":" cool-func .
|
||||
"Rosetta::Code"
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
$ <i>gforth</i>
|
||||
Gforth 0.7.0, Copyright (C) 1995-2008 Free Software Foundation, Inc.
|
||||
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
|
||||
Type `bye' to exit
|
||||
<i>: f ( separator suffix prefix -- )</i> compiled
|
||||
<i>pad place 2swap 2dup pad +place pad +place pad +place</i> compiled
|
||||
<i>pad count ;</i> ok
|
||||
<i>s" :" s" Code" s" Rosetta" f cr type</i>
|
||||
Rosetta::Code ok
|
||||
39
Task/Interactive-programming/GAP/interactive-programming.gap
Normal file
39
Task/Interactive-programming/GAP/interactive-programming.gap
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
~% gap
|
||||
|
||||
######### ###### ########### ###
|
||||
############# ###### ############ ####
|
||||
############## ######## ############# #####
|
||||
############### ######## ##### ###### #####
|
||||
###### # ######### ##### ##### ######
|
||||
###### ########## ##### ##### #######
|
||||
##### ##### #### ##### ###### ########
|
||||
#### ##### ##### ############# ### ####
|
||||
##### ####### #### #### ########### #### ####
|
||||
##### ####### ##### ##### ###### #### ####
|
||||
##### ####### ##### ##### ##### #############
|
||||
##### ##### ################ ##### #############
|
||||
###### ##### ################ ##### #############
|
||||
################ ################## ##### ####
|
||||
############### ##### ##### ##### ####
|
||||
############# ##### ##### ##### ####
|
||||
######### ##### ##### ##### ####
|
||||
|
||||
Information at: http://www.gap-system.org
|
||||
Try '?help' for help. See also '?copyright' and '?authors'
|
||||
|
||||
Loading the library. Please be patient, this may take a while.
|
||||
GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc
|
||||
Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, small6 1.0, small7 1.0, small8 1.0,
|
||||
small9 1.0, small10 0.2, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, trans 1.0,
|
||||
prim 2.1 loaded.
|
||||
Packages: AClib 1.1, Polycyclic 2.6, Alnuth 2.2.5, AutPGrp 1.4, CrystCat 1.1.3, Cryst 4.1.6, CRISP 1.3.2,
|
||||
CTblLib 1.1.3, TomLib 1.1.4, FactInt 1.5.2, GAPDoc 1.2, FGA 1.1.0.1, IRREDSOL 1.1.2, LAGUNA 3.5.0,
|
||||
Sophus 1.23, Polenta 1.2.7, ResClasses 2.5.3 loaded.
|
||||
gap> join := function(a, b, sep)
|
||||
> return Concatenation(a, sep, sep, b);
|
||||
> end;
|
||||
function( a, b, sep ) ... end
|
||||
gap>
|
||||
gap> join("Rosetta", "Code", ":");
|
||||
"Rosetta::Code"
|
||||
gap>
|
||||
11
Task/Interactive-programming/Go/interactive-programming.go
Normal file
11
Task/Interactive-programming/Go/interactive-programming.go
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func f(s1, s2, sep string) string {
|
||||
return s1+sep+sep+s2
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Println(f("Rosetta", "Code", ":"))
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
C:\Apps\groovy>groovysh
|
||||
Groovy Shell (1.6.2, JVM: 1.6.0_13)
|
||||
Type 'help' or '\h' for help.
|
||||
---------------------------------------------------------------------------------------------------
|
||||
groovy:000> f = { a, b, sep -> a + sep + sep + b }
|
||||
===> groovysh_evaluate$_run_closure1@5e8d7d
|
||||
groovy:000> println f('Rosetta','Code',':')
|
||||
Rosetta::Code
|
||||
===> null
|
||||
groovy:000> exit
|
||||
|
||||
C:\Apps\groovy>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
$ ghci
|
||||
___ ___ _
|
||||
/ _ \ /\ /\/ __(_)
|
||||
/ /_\// /_/ / / | | GHC Interactive, version 6.4.2, for Haskell 98.
|
||||
/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
|
||||
\____/\/ /_/\____/|_| Type :? for help.
|
||||
|
||||
Loading package base-1.0 ... linking ... done.
|
||||
Prelude> let f as bs sep = as ++ sep ++ sep ++ bs
|
||||
Prelude> f "Rosetta" "Code" ":"
|
||||
"Rosetta::Code"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
CHARACTER A*40, B*40, C*40
|
||||
|
||||
READ(Text=$CMD_LINE, Format="'','','',") A, B, C
|
||||
WRITE(ClipBoard, Name) A, B, C ! A=Rosetta; B=Code; C=:;
|
||||
|
||||
WRITE(ClipBoard) TRIM(A) // ':' // TRIM(C) // TRIM(B) ! Rosetta::Code
|
||||
3
Task/Interactive-programming/J/interactive-programming.j
Normal file
3
Task/Interactive-programming/J/interactive-programming.j
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
f=: [: ; 0 2 2 1&{
|
||||
f 'Rosetta';'Code';':'
|
||||
Rosetta::Code
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
$ java -cp js.jar org.mozilla.javascript.tools.shell.Main
|
||||
Rhino 1.7 release 2 2009 03 22
|
||||
js> function f(a,b,s) {return a + s + s + b;}
|
||||
js> f('Rosetta', 'Code', ':')
|
||||
Rosetta::Code
|
||||
js> quit()
|
||||
$
|
||||
5
Task/Interactive-programming/K/interactive-programming.k
Normal file
5
Task/Interactive-programming/K/interactive-programming.k
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
$ rlwrap k
|
||||
K Console - Enter \ for help
|
||||
f:{x,z,z,y}
|
||||
f["Rosetta";"Code";":"]
|
||||
"Rosetta::Code"
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
$ <i>logo</i>
|
||||
Welcome to Berkeley Logo version 5.6
|
||||
? <i>to f :prefix :suffix :separator</i>
|
||||
> <i>output (word :prefix :separator :separator :suffix)</i>
|
||||
> <i>end</i>
|
||||
f defined
|
||||
? <i>show f "Rosetta "Code ":</i>
|
||||
Rosetta::Code
|
||||
?
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
$ lua
|
||||
Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
|
||||
> function conc(a, b, c)
|
||||
>> return a..c..c..b
|
||||
>> end
|
||||
> print(conc("Rosetta", "Code", ":"))
|
||||
Rosetta::Code
|
||||
>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
$ m4
|
||||
define(`f',`$1`'$3`'$3`'$2')
|
||||
==>
|
||||
f(`Rosetta',`Code',`:')
|
||||
==>Rosetta::Code
|
||||
m4exit
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
function x=f(a,b,sep)
|
||||
x = [a,sep,b];
|
||||
return;
|
||||
end;
|
||||
f('Rosetta', 'Code', ':')
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
MCSKIP MT,<>
|
||||
MCINS %.
|
||||
MCDEF F WITHS (,,)
|
||||
AS <%WA1.%WA3.%WA2.%WA2.>
|
||||
|
|
@ -0,0 +1 @@
|
|||
$ math
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
f[x_,y_,z_]:=Print[x,z,z,y]
|
||||
->""
|
||||
f["Rosetta","Code",":"]
|
||||
->Rosetta::Code
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
(%i1) f(a, b, c) := sconcat(a, c, c, b)$
|
||||
(%i2) f("Rosetta", "Code", ":");
|
||||
(%o2) "Rosetta::Code"
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
$ perl -de1
|
||||
|
||||
Loading DB routines from perl5db.pl version 1.3
|
||||
Editor support available.
|
||||
|
||||
Enter h or `h h' for help, or `man perldebug' for more help.
|
||||
|
||||
main::(-e:1): 1
|
||||
DB<1> sub f {my ($s1, $s2, $sep) = @_; $s1 . $sep . $sep . $s2}
|
||||
|
||||
DB<2> p f('Rosetta', 'Code', ':')
|
||||
Rosetta::Code
|
||||
DB<3> q
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
$ perl
|
||||
# Write the script here and press Ctrl+D plus ENTER when finished (^D means Ctrl+D):
|
||||
sub f {my ($s1, $s2, $sep) = @_; $s1 . $sep . $sep . $s2};
|
||||
print f('Rosetta', 'Code', ':');
|
||||
^D
|
||||
Rosetta::Code
|
||||
$
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
$ perl -lpe '$_=eval||$@'
|
||||
sub f { join '' => @_[0, 2, 2, 1] }
|
||||
|
||||
f qw/Rosetta Code :/
|
||||
Rosetta::Code
|
||||
|
|
@ -0,0 +1 @@
|
|||
$ pil +
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
: (de f (Str1 Str2 Sep)
|
||||
(pack Str1 Sep Sep Str2) )
|
||||
-> f
|
||||
|
||||
: (f "Rosetta" "Code" ":")
|
||||
-> "Rosetta::Code"
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
% library(win_menu) compiled into win_menu 0.00 sec, 12,872 bytes
|
||||
% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 2,404 bytes
|
||||
% The graphical front-end will be used for subsequent tracing
|
||||
% c:/users/joel-seven/appdata/roaming/swi-prolog/pl.ini compiled 0.13 sec, 876,172 bytes
|
||||
XPCE 6.6.66, July 2009 for Win32: NT,2000,XP
|
||||
Copyright (C) 1993-2009 University of Amsterdam.
|
||||
XPCE comes with ABSOLUTELY NO WARRANTY. This is free software,
|
||||
and you are welcome to redistribute it under certain conditions.
|
||||
The host-language is SWI-Prolog version 5.10.0
|
||||
|
||||
For HELP on prolog, please type help. or apropos(topic).
|
||||
on xpce, please type manpce.
|
||||
|
||||
1 ?- assert((f(A, B,C) :- format('~w~w~w~w~n', [A, C, C, B]))).
|
||||
true.
|
||||
|
||||
2 ?- f('Rosetta', 'Code', ':').
|
||||
Rosetta::Code
|
||||
true.
|
||||
|
||||
3 ?-
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
python
|
||||
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)] on
|
||||
win32
|
||||
Type "help", "copyright", "credits" or "license" for more information.
|
||||
>>> def f(string1, string2, separator):
|
||||
return separator.join([string1, '', string2])
|
||||
|
||||
>>> f('Rosetta', 'Code', ':')
|
||||
'Rosetta::Code'
|
||||
>>>
|
||||
25
Task/Interactive-programming/R/interactive-programming.r
Normal file
25
Task/Interactive-programming/R/interactive-programming.r
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
$ R
|
||||
|
||||
R version 2.7.2 (2008-08-25)
|
||||
Copyright (C) 2008 The R Foundation for Statistical Computing
|
||||
ISBN 3-900051-07-0
|
||||
|
||||
R is free software and comes with ABSOLUTELY NO WARRANTY.
|
||||
You are welcome to redistribute it under certain conditions.
|
||||
Type 'license()' or 'licence()' for distribution details.
|
||||
|
||||
Natural language support but running in an English locale
|
||||
|
||||
R is a collaborative project with many contributors.
|
||||
Type 'contributors()' for more information and
|
||||
'citation()' on how to cite R or R packages in publications.
|
||||
|
||||
Type 'demo()' for some demos, 'help()' for on-line help, or
|
||||
'help.start()' for an HTML browser interface to help.
|
||||
Type 'q()' to quit R.
|
||||
|
||||
> f <- function(a, b, s) paste(a, "", b, sep=s)
|
||||
> f("Rosetta", "Code", ":")
|
||||
[1] "Rosetta::Code"
|
||||
> q()
|
||||
Save workspace image? [y/n/c]: n
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
/*REXX*/ parse arg a b c
|
||||
say f(a,b,c)
|
||||
exit
|
||||
f:return arg(1)arg(3)arg(3)arg(2)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
/*REXX program to show interactive programming by using a function [F]. */
|
||||
say f('Rosetta', "Code", ':')
|
||||
say f('The definition of a trivial program is '," one that has no bugs.",'───')
|
||||
exit /*stick a fork in it, we're done.*/
|
||||
|
||||
/*──────────────────────────────────F subroutine────────────────────────*/
|
||||
f: return arg(1) || copies(arg(3),2) || arg(2) /*return required str.*/
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
/*REXX program to show interactive programming by using a function [F]. */
|
||||
say '══════════════════ enter the function F with three arguments:'
|
||||
parse pull funky
|
||||
interpret 'SAY' funky
|
||||
exit /*stick a fork in it, we're done.*/
|
||||
/*──────────────────────────────────F subroutine────────────────────────*/
|
||||
f: return arg(1) || copies(arg(3),2) || arg(2) /*return required str.*/
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
oiseau:/tmp> racket
|
||||
Welcome to Racket v5.3.3.5.
|
||||
> (define (f string-1 string-2 separator)
|
||||
(string-append string-1 separator separator string-2))
|
||||
> (f "Rosetta" "Code" ":")
|
||||
"Rosetta::Code"
|
||||
> ^D
|
||||
oiseau:/tmp>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
$ irb
|
||||
irb(main):001:0> def f(string1, string2, separator)
|
||||
irb(main):002:1> [string1, '', string2].join(separator)
|
||||
irb(main):003:1> end
|
||||
=> nil
|
||||
irb(main):004:0> f('Rosetta', 'Code', ':')
|
||||
=> "Rosetta::Code"
|
||||
irb(main):005:0> exit
|
||||
$
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
C:\>scala
|
||||
Welcome to Scala version 2.8.0.r21356-b20100407020120 (Java HotSpot(TM) Client V
|
||||
M, Java 1.6.0_05).
|
||||
Type in expressions to have them evaluated.
|
||||
Type :help for more information.
|
||||
|
||||
scala> "rosetta"
|
||||
res0: java.lang.String = rosetta
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
scala> "rosetta".
|
||||
|
||||
!= ## $asInstanceOf
|
||||
$isInstanceOf + ==
|
||||
charAt clone codePointAt
|
||||
codePointBefore codePointCount compareTo
|
||||
compareToIgnoreCase concat contains
|
||||
contentEquals endsWith eq
|
||||
equals equalsIgnoreCase finalize
|
||||
getBytes getChars getClass
|
||||
hashCode indexOf intern
|
||||
isEmpty lastIndexOf length
|
||||
matches ne notify
|
||||
notifyAll offsetByCodePoints regionMatches
|
||||
replace replaceAll replaceFirst
|
||||
split startsWith subSequence
|
||||
substring synchronized this
|
||||
toCharArray toLowerCase toString
|
||||
toUpperCase trim wait
|
||||
|
||||
scala> "rosetta".+(":")
|
||||
res1: java.lang.String = rosetta:
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
scala> val str1 = "rosetta"
|
||||
str1: java.lang.String = rosetta
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
scala> val str2 = "code"
|
||||
str2: java.lang.String = code
|
||||
|
||||
scala> val separator = ":"
|
||||
separator: java.lang.String = :
|
||||
|
||||
scala> str1 + separator + str2
|
||||
res2: java.lang.String = rosetta:code
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
scala> def (str1: String, str2: String, separator: String) =
|
||||
<console>:1: error: identifier expected but '(' found.
|
||||
def (str1: String, str2: String, separator: String) =
|
||||
^
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
scala> def f(str1: String, str2: String, separator: String) =
|
||||
| str1 + separator + str2
|
||||
f: (str1: String,str2: String,separator: String)java.lang.String
|
||||
|
||||
scala> f("rosetta", "code", ":")
|
||||
res3: java.lang.String = rosetta:code
|
||||
|
||||
scala> f("code", "rosetta", ", ")
|
||||
res4: java.lang.String = code, rosetta
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
scala> .length
|
||||
res5: Int = 13
|
||||
|
||||
scala>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
scala> Array(1, 2, 3, 4)
|
||||
res8: Array[Int] = Array(1, 2, 3, 4)
|
||||
|
||||
scala> println(res8)
|
||||
[I@383244
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
> scheme
|
||||
Scheme Microcode Version 14.9
|
||||
MIT Scheme running under FreeBSD
|
||||
Type `^C' (control-C) followed by `H' to obtain information about interrupts.
|
||||
Scheme saved on Monday June 17, 2002 at 10:03:44 PM
|
||||
Release 7.7.1
|
||||
Microcode 14.9
|
||||
Runtime 15.1
|
||||
|
||||
1 ]=> (define (f string-1 string-2 separator)
|
||||
(string-append string-1 separator separator string-2))
|
||||
|
||||
;Value: f
|
||||
|
||||
1 ]=> (f "Rosetta" "Code" ":")
|
||||
|
||||
;Value 1: "Rosetta::Code"
|
||||
|
||||
1 ]=> ^D
|
||||
End of input stream reached
|
||||
Happy Happy Joy Joy.
|
||||
>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
> scheme48
|
||||
Welcome to Scheme 48 1.8 (made by root on Wed Sep 24 22:37:08 UTC 2008)
|
||||
Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees.
|
||||
Please report bugs to scheme-48-bugs@s48.org.
|
||||
Get more information at http://www.s48.org/.
|
||||
Type ,? (comma question-mark) for help.
|
||||
> (define (f string-1 string-2 separator)
|
||||
(string-append string-1 separator separator string-2))
|
||||
; no values returned
|
||||
> (f "Rosetta" "Code" ":")
|
||||
"Rosetta::Code"
|
||||
> ^D
|
||||
Exit Scheme 48 (y/n)? ^D
|
||||
I'll only ask another 100 times.
|
||||
Exit Scheme 48 (y/n)? ^D
|
||||
I'll only ask another 99 times.
|
||||
Exit Scheme 48 (y/n)? y
|
||||
>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
$ gst
|
||||
GNU Smalltalk ready
|
||||
|
||||
st> |concat|
|
||||
st> concat := [ :a :b :c | (a,c,c,b) displayNl ].
|
||||
a BlockClosure
|
||||
st> concat value: 'Rosetta' value: 'Code' value: ':'.
|
||||
Rosetta::Code
|
||||
'Rosetta::Code'
|
||||
st>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
$ tclsh
|
||||
% proc f {s1 s2 sep} {
|
||||
append result $s1 $sep $sep $s2
|
||||
}
|
||||
% f Rosetta Code :
|
||||
Rosetta::Code
|
||||
% exit
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
$ tclsh
|
||||
% proc f {a b s} {join [list $a "" $b] $s}
|
||||
% f Rosetta Code :
|
||||
Rosetta::Code
|
||||
%
|
||||
Loading…
Add table
Add a link
Reference in a new issue