diff --git a/Lang/360-Assembly/Literals-Floating-point b/Lang/360-Assembly/Literals-Floating-point
new file mode 120000
index 0000000000..01064f82c5
--- /dev/null
+++ b/Lang/360-Assembly/Literals-Floating-point
@@ -0,0 +1 @@
+../../Task/Literals-Floating-point/360-Assembly
\ No newline at end of file
diff --git a/Lang/360-Assembly/Nth-root b/Lang/360-Assembly/Nth-root
new file mode 120000
index 0000000000..b91fbfd472
--- /dev/null
+++ b/Lang/360-Assembly/Nth-root
@@ -0,0 +1 @@
+../../Task/Nth-root/360-Assembly
\ No newline at end of file
diff --git a/Lang/360-Assembly/Palindrome-detection b/Lang/360-Assembly/Palindrome-detection
new file mode 120000
index 0000000000..81586162d3
--- /dev/null
+++ b/Lang/360-Assembly/Palindrome-detection
@@ -0,0 +1 @@
+../../Task/Palindrome-detection/360-Assembly
\ No newline at end of file
diff --git a/Lang/8th/Accumulator-factory b/Lang/8th/Accumulator-factory
new file mode 120000
index 0000000000..22140d46d0
--- /dev/null
+++ b/Lang/8th/Accumulator-factory
@@ -0,0 +1 @@
+../../Task/Accumulator-factory/8th
\ No newline at end of file
diff --git a/Lang/8th/Array-concatenation b/Lang/8th/Array-concatenation
new file mode 120000
index 0000000000..dc5fffb8cb
--- /dev/null
+++ b/Lang/8th/Array-concatenation
@@ -0,0 +1 @@
+../../Task/Array-concatenation/8th
\ No newline at end of file
diff --git a/Lang/8th/Associative-array-Creation b/Lang/8th/Associative-array-Creation
new file mode 120000
index 0000000000..9680be3841
--- /dev/null
+++ b/Lang/8th/Associative-array-Creation
@@ -0,0 +1 @@
+../../Task/Associative-array-Creation/8th
\ No newline at end of file
diff --git a/Lang/8th/Associative-array-Iteration b/Lang/8th/Associative-array-Iteration
new file mode 120000
index 0000000000..e6d867447f
--- /dev/null
+++ b/Lang/8th/Associative-array-Iteration
@@ -0,0 +1 @@
+../../Task/Associative-array-Iteration/8th
\ No newline at end of file
diff --git a/Lang/8th/Atomic-updates b/Lang/8th/Atomic-updates
new file mode 120000
index 0000000000..07c9511fe1
--- /dev/null
+++ b/Lang/8th/Atomic-updates
@@ -0,0 +1 @@
+../../Task/Atomic-updates/8th
\ No newline at end of file
diff --git a/Lang/ABAP/Guess-the-number b/Lang/ABAP/Guess-the-number
new file mode 120000
index 0000000000..0eaf1424ad
--- /dev/null
+++ b/Lang/ABAP/Guess-the-number
@@ -0,0 +1 @@
+../../Task/Guess-the-number/ABAP
\ No newline at end of file
diff --git a/Lang/ALGOL-60/Loops-Do-while b/Lang/ALGOL-60/Loops-Do-while
new file mode 120000
index 0000000000..f59417278a
--- /dev/null
+++ b/Lang/ALGOL-60/Loops-Do-while
@@ -0,0 +1 @@
+../../Task/Loops-Do-while/ALGOL-60
\ No newline at end of file
diff --git a/Lang/ALGOL-60/Loops-Downward-for b/Lang/ALGOL-60/Loops-Downward-for
new file mode 120000
index 0000000000..cfae9b2326
--- /dev/null
+++ b/Lang/ALGOL-60/Loops-Downward-for
@@ -0,0 +1 @@
+../../Task/Loops-Downward-for/ALGOL-60
\ No newline at end of file
diff --git a/Lang/ALGOL-60/Loops-Infinite b/Lang/ALGOL-60/Loops-Infinite
new file mode 120000
index 0000000000..527a9ee1fd
--- /dev/null
+++ b/Lang/ALGOL-60/Loops-Infinite
@@ -0,0 +1 @@
+../../Task/Loops-Infinite/ALGOL-60
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Binary-digits b/Lang/ARM-Assembly/Binary-digits
new file mode 120000
index 0000000000..e6ec8ee128
--- /dev/null
+++ b/Lang/ARM-Assembly/Binary-digits
@@ -0,0 +1 @@
+../../Task/Binary-digits/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Bitwise-operations b/Lang/ARM-Assembly/Bitwise-operations
new file mode 120000
index 0000000000..e5d1c540b0
--- /dev/null
+++ b/Lang/ARM-Assembly/Bitwise-operations
@@ -0,0 +1 @@
+../../Task/Bitwise-operations/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Factors-of-an-integer b/Lang/ARM-Assembly/Factors-of-an-integer
new file mode 120000
index 0000000000..ef3544ccb0
--- /dev/null
+++ b/Lang/ARM-Assembly/Factors-of-an-integer
@@ -0,0 +1 @@
+../../Task/Factors-of-an-integer/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Function-definition b/Lang/ARM-Assembly/Function-definition
new file mode 120000
index 0000000000..2fcaa36e07
--- /dev/null
+++ b/Lang/ARM-Assembly/Function-definition
@@ -0,0 +1 @@
+../../Task/Function-definition/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Integer-comparison b/Lang/ARM-Assembly/Integer-comparison
new file mode 120000
index 0000000000..d41039d2bb
--- /dev/null
+++ b/Lang/ARM-Assembly/Integer-comparison
@@ -0,0 +1 @@
+../../Task/Integer-comparison/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/Loops-For b/Lang/ARM-Assembly/Loops-For
new file mode 120000
index 0000000000..dcf153a07b
--- /dev/null
+++ b/Lang/ARM-Assembly/Loops-For
@@ -0,0 +1 @@
+../../Task/Loops-For/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/String-comparison b/Lang/ARM-Assembly/String-comparison
new file mode 120000
index 0000000000..33e8219c93
--- /dev/null
+++ b/Lang/ARM-Assembly/String-comparison
@@ -0,0 +1 @@
+../../Task/String-comparison/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/ARM-Assembly/User-input-Text b/Lang/ARM-Assembly/User-input-Text
new file mode 120000
index 0000000000..fa591ac931
--- /dev/null
+++ b/Lang/ARM-Assembly/User-input-Text
@@ -0,0 +1 @@
+../../Task/User-input-Text/ARM-Assembly
\ No newline at end of file
diff --git a/Lang/Agda/Extend-your-language b/Lang/Agda/Extend-your-language
new file mode 120000
index 0000000000..032b1b833e
--- /dev/null
+++ b/Lang/Agda/Extend-your-language
@@ -0,0 +1 @@
+../../Task/Extend-your-language/Agda
\ No newline at end of file
diff --git a/Lang/Astro/00DESCRIPTION b/Lang/Astro/00DESCRIPTION
index 86ec27c6f4..b143e85320 100644
--- a/Lang/Astro/00DESCRIPTION
+++ b/Lang/Astro/00DESCRIPTION
@@ -1,4 +1,4 @@
{{stub}}{{language|Astro}}
-Astro is a high-performance statically-typed programming language that compiles to [[WebAssembly]], with syntax similar to [[Python]] and numerical-computing orientation similar to [[Julia]].
+Astro is a fun safe language for rapid prototyping and high performance applications.
Astro provides a sophisticated compiler with full type inference, compile-time garbage collection, and an extensive mathematical function library.
-It pushes multiple dispatch as its primary paradigm but borrows from several other paradigms as well. It supports first-class types, functions and hygenic macros.
\ No newline at end of file
+It pushes multiple dispatch as its primary paradigm but borrows from several other paradigms as well.
\ No newline at end of file
diff --git a/Lang/BASIC/Pi b/Lang/BASIC/Pi
new file mode 120000
index 0000000000..c33dc27db2
--- /dev/null
+++ b/Lang/BASIC/Pi
@@ -0,0 +1 @@
+../../Task/Pi/BASIC
\ No newline at end of file
diff --git a/Lang/BASIC256/00DESCRIPTION b/Lang/BASIC256/00DESCRIPTION
index 657286ba6f..09f744afea 100644
--- a/Lang/BASIC256/00DESCRIPTION
+++ b/Lang/BASIC256/00DESCRIPTION
@@ -19,7 +19,7 @@
; Disadvantages
* BASIC-256 does not support three- and N-dimensional arrays in general (N>2)
-
+
BASIC256 is open source and available for [[Linux]], [[Windows]] and [[Mac]].
For more information see [http://www.basic256.org basic256.org] or to download and install [http://sourceforge.net/projects/kidbasic/ sourceforge].
\ No newline at end of file
diff --git a/Lang/BaCon/HTTPS b/Lang/BaCon/HTTPS
new file mode 120000
index 0000000000..ff91156f1b
--- /dev/null
+++ b/Lang/BaCon/HTTPS
@@ -0,0 +1 @@
+../../Task/HTTPS/BaCon
\ No newline at end of file
diff --git a/Lang/Bc/Terminal-control-Ringing-the-terminal-bell b/Lang/Bc/Terminal-control-Ringing-the-terminal-bell
new file mode 120000
index 0000000000..a5b9130f66
--- /dev/null
+++ b/Lang/Bc/Terminal-control-Ringing-the-terminal-bell
@@ -0,0 +1 @@
+../../Task/Terminal-control-Ringing-the-terminal-bell/Bc
\ No newline at end of file
diff --git a/Lang/Bc/Zero-to-the-zero-power b/Lang/Bc/Zero-to-the-zero-power
new file mode 120000
index 0000000000..f863fa8d27
--- /dev/null
+++ b/Lang/Bc/Zero-to-the-zero-power
@@ -0,0 +1 @@
+../../Task/Zero-to-the-zero-power/Bc
\ No newline at end of file
diff --git a/Lang/Beeswax/Empty-program b/Lang/Beeswax/Empty-program
new file mode 120000
index 0000000000..b4c88a0407
--- /dev/null
+++ b/Lang/Beeswax/Empty-program
@@ -0,0 +1 @@
+../../Task/Empty-program/Beeswax
\ No newline at end of file
diff --git a/Lang/Befunge/Abundant,-deficient-and-perfect-number-classifications b/Lang/Befunge/Abundant,-deficient-and-perfect-number-classifications
new file mode 120000
index 0000000000..1f652c2bc8
--- /dev/null
+++ b/Lang/Befunge/Abundant,-deficient-and-perfect-number-classifications
@@ -0,0 +1 @@
+../../Task/Abundant,-deficient-and-perfect-number-classifications/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Amicable-pairs b/Lang/Befunge/Amicable-pairs
new file mode 120000
index 0000000000..9a97cf47fb
--- /dev/null
+++ b/Lang/Befunge/Amicable-pairs
@@ -0,0 +1 @@
+../../Task/Amicable-pairs/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Colour-pinstripe-Display b/Lang/Befunge/Colour-pinstripe-Display
new file mode 120000
index 0000000000..152b2a659e
--- /dev/null
+++ b/Lang/Befunge/Colour-pinstripe-Display
@@ -0,0 +1 @@
+../../Task/Colour-pinstripe-Display/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Conways-Game-of-Life b/Lang/Befunge/Conways-Game-of-Life
new file mode 120000
index 0000000000..da55d0a6b2
--- /dev/null
+++ b/Lang/Befunge/Conways-Game-of-Life
@@ -0,0 +1 @@
+../../Task/Conways-Game-of-Life/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Dragon-curve b/Lang/Befunge/Dragon-curve
new file mode 120000
index 0000000000..08a902b8e9
--- /dev/null
+++ b/Lang/Befunge/Dragon-curve
@@ -0,0 +1 @@
+../../Task/Dragon-curve/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Draw-a-cuboid b/Lang/Befunge/Draw-a-cuboid
new file mode 120000
index 0000000000..7d18c7b0de
--- /dev/null
+++ b/Lang/Befunge/Draw-a-cuboid
@@ -0,0 +1 @@
+../../Task/Draw-a-cuboid/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Fibonacci-n-step-number-sequences b/Lang/Befunge/Fibonacci-n-step-number-sequences
new file mode 120000
index 0000000000..c36ecf57b6
--- /dev/null
+++ b/Lang/Befunge/Fibonacci-n-step-number-sequences
@@ -0,0 +1 @@
+../../Task/Fibonacci-n-step-number-sequences/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Find-limit-of-recursion b/Lang/Befunge/Find-limit-of-recursion
new file mode 120000
index 0000000000..981ebe1f9a
--- /dev/null
+++ b/Lang/Befunge/Find-limit-of-recursion
@@ -0,0 +1 @@
+../../Task/Find-limit-of-recursion/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Fractran b/Lang/Befunge/Fractran
new file mode 120000
index 0000000000..8fcab2511d
--- /dev/null
+++ b/Lang/Befunge/Fractran
@@ -0,0 +1 @@
+../../Task/Fractran/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Guess-the-number-With-feedback b/Lang/Befunge/Guess-the-number-With-feedback
new file mode 120000
index 0000000000..2a965cfc06
--- /dev/null
+++ b/Lang/Befunge/Guess-the-number-With-feedback
@@ -0,0 +1 @@
+../../Task/Guess-the-number-With-feedback/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/IBAN b/Lang/Befunge/IBAN
new file mode 120000
index 0000000000..2ea2a8025e
--- /dev/null
+++ b/Lang/Befunge/IBAN
@@ -0,0 +1 @@
+../../Task/IBAN/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Iterated-digits-squaring b/Lang/Befunge/Iterated-digits-squaring
new file mode 120000
index 0000000000..2f6a14c87d
--- /dev/null
+++ b/Lang/Befunge/Iterated-digits-squaring
@@ -0,0 +1 @@
+../../Task/Iterated-digits-squaring/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Langtons-ant b/Lang/Befunge/Langtons-ant
new file mode 120000
index 0000000000..494309eb28
--- /dev/null
+++ b/Lang/Befunge/Langtons-ant
@@ -0,0 +1 @@
+../../Task/Langtons-ant/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Least-common-multiple b/Lang/Befunge/Least-common-multiple
new file mode 120000
index 0000000000..59f5a57639
--- /dev/null
+++ b/Lang/Befunge/Least-common-multiple
@@ -0,0 +1 @@
+../../Task/Least-common-multiple/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Munching-squares b/Lang/Befunge/Munching-squares
new file mode 120000
index 0000000000..e426f04729
--- /dev/null
+++ b/Lang/Befunge/Munching-squares
@@ -0,0 +1 @@
+../../Task/Munching-squares/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/N-queens-problem b/Lang/Befunge/N-queens-problem
new file mode 120000
index 0000000000..f168d6747c
--- /dev/null
+++ b/Lang/Befunge/N-queens-problem
@@ -0,0 +1 @@
+../../Task/N-queens-problem/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Narcissistic-decimal-number b/Lang/Befunge/Narcissistic-decimal-number
new file mode 120000
index 0000000000..1b5f8ca3b8
--- /dev/null
+++ b/Lang/Befunge/Narcissistic-decimal-number
@@ -0,0 +1 @@
+../../Task/Narcissistic-decimal-number/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Pangram-checker b/Lang/Befunge/Pangram-checker
new file mode 120000
index 0000000000..cde527f366
--- /dev/null
+++ b/Lang/Befunge/Pangram-checker
@@ -0,0 +1 @@
+../../Task/Pangram-checker/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Pinstripe-Display b/Lang/Befunge/Pinstripe-Display
new file mode 120000
index 0000000000..19575058ca
--- /dev/null
+++ b/Lang/Befunge/Pinstripe-Display
@@ -0,0 +1 @@
+../../Task/Pinstripe-Display/Befunge
\ No newline at end of file
diff --git a/Lang/Befunge/Sudoku b/Lang/Befunge/Sudoku
new file mode 120000
index 0000000000..fc1dd98746
--- /dev/null
+++ b/Lang/Befunge/Sudoku
@@ -0,0 +1 @@
+../../Task/Sudoku/Befunge
\ No newline at end of file
diff --git a/Lang/C++/Count-the-coins b/Lang/C++/Count-the-coins
new file mode 120000
index 0000000000..54262a6e1b
--- /dev/null
+++ b/Lang/C++/Count-the-coins
@@ -0,0 +1 @@
+../../Task/Count-the-coins/C++
\ No newline at end of file
diff --git a/Lang/C++/Terminal-control-Ringing-the-terminal-bell b/Lang/C++/Terminal-control-Ringing-the-terminal-bell
new file mode 120000
index 0000000000..99b1c293aa
--- /dev/null
+++ b/Lang/C++/Terminal-control-Ringing-the-terminal-bell
@@ -0,0 +1 @@
+../../Task/Terminal-control-Ringing-the-terminal-bell/C++
\ No newline at end of file
diff --git a/Lang/C++/Zhang-Suen-thinning-algorithm b/Lang/C++/Zhang-Suen-thinning-algorithm
new file mode 120000
index 0000000000..602f125a70
--- /dev/null
+++ b/Lang/C++/Zhang-Suen-thinning-algorithm
@@ -0,0 +1 @@
+../../Task/Zhang-Suen-thinning-algorithm/C++
\ No newline at end of file
diff --git a/Lang/C-sharp/Longest-increasing-subsequence b/Lang/C-sharp/Longest-increasing-subsequence
new file mode 120000
index 0000000000..865c569e57
--- /dev/null
+++ b/Lang/C-sharp/Longest-increasing-subsequence
@@ -0,0 +1 @@
+../../Task/Longest-increasing-subsequence/C-sharp
\ No newline at end of file
diff --git a/Lang/COBOL/Use-another-language-to-call-a-function b/Lang/COBOL/Use-another-language-to-call-a-function
new file mode 120000
index 0000000000..d6e0801841
--- /dev/null
+++ b/Lang/COBOL/Use-another-language-to-call-a-function
@@ -0,0 +1 @@
+../../Task/Use-another-language-to-call-a-function/COBOL
\ No newline at end of file
diff --git a/Lang/Ceylon/Dinesmans-multiple-dwelling-problem b/Lang/Ceylon/Dinesmans-multiple-dwelling-problem
new file mode 120000
index 0000000000..505625acc2
--- /dev/null
+++ b/Lang/Ceylon/Dinesmans-multiple-dwelling-problem
@@ -0,0 +1 @@
+../../Task/Dinesmans-multiple-dwelling-problem/Ceylon
\ No newline at end of file
diff --git a/Lang/Ceylon/Dutch-national-flag-problem b/Lang/Ceylon/Dutch-national-flag-problem
new file mode 120000
index 0000000000..666bd0c238
--- /dev/null
+++ b/Lang/Ceylon/Dutch-national-flag-problem
@@ -0,0 +1 @@
+../../Task/Dutch-national-flag-problem/Ceylon
\ No newline at end of file
diff --git a/Lang/Ceylon/Fractal-tree b/Lang/Ceylon/Fractal-tree
new file mode 120000
index 0000000000..b3028ba31a
--- /dev/null
+++ b/Lang/Ceylon/Fractal-tree
@@ -0,0 +1 @@
+../../Task/Fractal-tree/Ceylon
\ No newline at end of file
diff --git a/Lang/Crystal/Combinations b/Lang/Crystal/Combinations
new file mode 120000
index 0000000000..8d31c4a681
--- /dev/null
+++ b/Lang/Crystal/Combinations
@@ -0,0 +1 @@
+../../Task/Combinations/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Flatten-a-list b/Lang/Crystal/Flatten-a-list
new file mode 120000
index 0000000000..34605151f7
--- /dev/null
+++ b/Lang/Crystal/Flatten-a-list
@@ -0,0 +1 @@
+../../Task/Flatten-a-list/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Hailstone-sequence b/Lang/Crystal/Hailstone-sequence
new file mode 120000
index 0000000000..227464f110
--- /dev/null
+++ b/Lang/Crystal/Hailstone-sequence
@@ -0,0 +1 @@
+../../Task/Hailstone-sequence/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/JSON b/Lang/Crystal/JSON
new file mode 120000
index 0000000000..9b4132ba47
--- /dev/null
+++ b/Lang/Crystal/JSON
@@ -0,0 +1 @@
+../../Task/JSON/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Number-reversal-game b/Lang/Crystal/Number-reversal-game
new file mode 120000
index 0000000000..0145396ddd
--- /dev/null
+++ b/Lang/Crystal/Number-reversal-game
@@ -0,0 +1 @@
+../../Task/Number-reversal-game/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Palindrome-detection b/Lang/Crystal/Palindrome-detection
new file mode 120000
index 0000000000..fbfbc73018
--- /dev/null
+++ b/Lang/Crystal/Palindrome-detection
@@ -0,0 +1 @@
+../../Task/Palindrome-detection/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Pick-random-element b/Lang/Crystal/Pick-random-element
new file mode 120000
index 0000000000..16afd14838
--- /dev/null
+++ b/Lang/Crystal/Pick-random-element
@@ -0,0 +1 @@
+../../Task/Pick-random-element/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Repeat-a-string b/Lang/Crystal/Repeat-a-string
new file mode 120000
index 0000000000..ebe4863849
--- /dev/null
+++ b/Lang/Crystal/Repeat-a-string
@@ -0,0 +1 @@
+../../Task/Repeat-a-string/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Sort-an-integer-array b/Lang/Crystal/Sort-an-integer-array
new file mode 120000
index 0000000000..0299152820
--- /dev/null
+++ b/Lang/Crystal/Sort-an-integer-array
@@ -0,0 +1 @@
+../../Task/Sort-an-integer-array/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Strip-whitespace-from-a-string-Top-and-tail b/Lang/Crystal/Strip-whitespace-from-a-string-Top-and-tail
new file mode 120000
index 0000000000..1ec1cd5c89
--- /dev/null
+++ b/Lang/Crystal/Strip-whitespace-from-a-string-Top-and-tail
@@ -0,0 +1 @@
+../../Task/Strip-whitespace-from-a-string-Top-and-tail/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Sum-and-product-of-an-array b/Lang/Crystal/Sum-and-product-of-an-array
new file mode 120000
index 0000000000..aeb9d36ebd
--- /dev/null
+++ b/Lang/Crystal/Sum-and-product-of-an-array
@@ -0,0 +1 @@
+../../Task/Sum-and-product-of-an-array/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Sum-multiples-of-3-and-5 b/Lang/Crystal/Sum-multiples-of-3-and-5
new file mode 120000
index 0000000000..d1ae495698
--- /dev/null
+++ b/Lang/Crystal/Sum-multiples-of-3-and-5
@@ -0,0 +1 @@
+../../Task/Sum-multiples-of-3-and-5/Crystal
\ No newline at end of file
diff --git a/Lang/Crystal/Sum-of-squares b/Lang/Crystal/Sum-of-squares
new file mode 120000
index 0000000000..d340fdf27e
--- /dev/null
+++ b/Lang/Crystal/Sum-of-squares
@@ -0,0 +1 @@
+../../Task/Sum-of-squares/Crystal
\ No newline at end of file
diff --git a/Lang/Dart/Leap-year b/Lang/Dart/Leap-year
new file mode 120000
index 0000000000..a584da204a
--- /dev/null
+++ b/Lang/Dart/Leap-year
@@ -0,0 +1 @@
+../../Task/Leap-year/Dart
\ No newline at end of file
diff --git a/Lang/Elena/00DESCRIPTION b/Lang/Elena/00DESCRIPTION
index 77f6f39b97..c6835bacac 100644
--- a/Lang/Elena/00DESCRIPTION
+++ b/Lang/Elena/00DESCRIPTION
@@ -15,27 +15,27 @@ ELENA is a general-purpose, object-oriented, polymorphic language with late bind
To create a simple console program we have to declare the program symbol in the project root namespace:
- public program =
+ public program
[
- ].
+ ]
Everything in ELENA is an object. To interact with it we have to send a message. The simplest (generic, i.e. without an explicit signature) message consists of an action and a parameter list.
The statement should be terminated by a dot (ELENA is inspired by Smalltalk and uses its syntax notations).
- public program =
+ public program
[
- console writeLine("Hello!").
- ].
+ console writeLine("Hello!")
+ ]
In our example the action is writeLine and the parameter list consists of a single literal constant. The message target is console object (implementing input / output operations with a program console).
Several message operations can be done in a single statement separated by a semicolon:
- public program =
+ public program
[
console writeLine("Hello!"); writeLine("How are you?").
- ].
+ ]
The result will be:
@@ -44,10 +44,10 @@ The result will be:
We may read a user input by sending readLine message without parameters:
- public program =
+ public program
[
console write("What is your name:"); writeLine("Hello " + console readLine).
- ].
+ ]
The result will be:
@@ -66,22 +66,22 @@ where we declare a variable myVariable and initialize it with a literal constant
The assigning value can be an expression itself:
- public program =
+ public program
[
console writeLine("Hello!"); writeLine("How are you?").
var s := console readLine.
- ].
+ ]
ELENA is a dynamic language and in normal case we may not specify the variable type:
- public program =
+ public program
[
var s := "Hello".
console writeLine(s).
s := 2.
console writeLine(s).
- ].
+ ]
The output will be:
@@ -133,7 +133,7 @@ Boolean type is used in conditional operations and may accept only two Boolean l
import extensions.
- public program =
+ public program
[
bool b1 := true.
bool b2 := false.
@@ -142,7 +142,7 @@ Boolean type is used in conditional operations and may accept only two Boolean l
console printLine(b2,"==",b2," is ",b2==b2).
console printLine(b1,"==",b2," is ",b1==b2).
console printLine(b2,"==",b1," is ",b1==b2).
- ].
+ ]
Note that implicit extension method - extensions'outputOp.printLine[] - was used to simplify the output operations.
diff --git a/Lang/Elm/00DESCRIPTION b/Lang/Elm/00DESCRIPTION
index 7cc7e43bbd..67674dd63b 100644
--- a/Lang/Elm/00DESCRIPTION
+++ b/Lang/Elm/00DESCRIPTION
@@ -7,7 +7,7 @@
|LCT = yes
}}
-'''Elm''' is a programming language for developping browser-based applications and graphical user interfaces that strictly adheres to the functional paradigm. This means that Elm does not rely on mutability or destructive updates.
+'''Elm''' is a programming language for developing browser-based applications and graphical user interfaces that strictly adheres to the functional paradigm. This means that Elm does not rely on mutability or destructive updates.
In order to run web applications, Elm compiles to Javascript, HTML, and CSS. The Functional model-view-update architecture is used in lieu of event handlers and callbacks. For right markup, Elm allows to embed Markdown directly in the language.
diff --git a/Lang/Emacs-Lisp/99-Bottles-of-Beer b/Lang/Emacs-Lisp/99-Bottles-of-Beer
new file mode 120000
index 0000000000..62dc5891f6
--- /dev/null
+++ b/Lang/Emacs-Lisp/99-Bottles-of-Beer
@@ -0,0 +1 @@
+../../Task/99-Bottles-of-Beer/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Character-codes b/Lang/Emacs-Lisp/Character-codes
new file mode 120000
index 0000000000..89687ab57b
--- /dev/null
+++ b/Lang/Emacs-Lisp/Character-codes
@@ -0,0 +1 @@
+../../Task/Character-codes/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Copy-a-string b/Lang/Emacs-Lisp/Copy-a-string
new file mode 120000
index 0000000000..febae5aad9
--- /dev/null
+++ b/Lang/Emacs-Lisp/Copy-a-string
@@ -0,0 +1 @@
+../../Task/Copy-a-string/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Create-a-file b/Lang/Emacs-Lisp/Create-a-file
new file mode 120000
index 0000000000..c2dba20f7b
--- /dev/null
+++ b/Lang/Emacs-Lisp/Create-a-file
@@ -0,0 +1 @@
+../../Task/Create-a-file/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Delete-a-file b/Lang/Emacs-Lisp/Delete-a-file
new file mode 120000
index 0000000000..2f1ec27e89
--- /dev/null
+++ b/Lang/Emacs-Lisp/Delete-a-file
@@ -0,0 +1 @@
+../../Task/Delete-a-file/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Execute-a-system-command b/Lang/Emacs-Lisp/Execute-a-system-command
new file mode 120000
index 0000000000..9f47b33257
--- /dev/null
+++ b/Lang/Emacs-Lisp/Execute-a-system-command
@@ -0,0 +1 @@
+../../Task/Execute-a-system-command/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/FizzBuzz b/Lang/Emacs-Lisp/FizzBuzz
new file mode 120000
index 0000000000..7b3555f3b5
--- /dev/null
+++ b/Lang/Emacs-Lisp/FizzBuzz
@@ -0,0 +1 @@
+../../Task/FizzBuzz/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Guess-the-number b/Lang/Emacs-Lisp/Guess-the-number
new file mode 120000
index 0000000000..2307d99d03
--- /dev/null
+++ b/Lang/Emacs-Lisp/Guess-the-number
@@ -0,0 +1 @@
+../../Task/Guess-the-number/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Guess-the-number-With-feedback b/Lang/Emacs-Lisp/Guess-the-number-With-feedback
new file mode 120000
index 0000000000..5a64b8fe00
--- /dev/null
+++ b/Lang/Emacs-Lisp/Guess-the-number-With-feedback
@@ -0,0 +1 @@
+../../Task/Guess-the-number-With-feedback/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Emacs-Lisp/Josephus-problem b/Lang/Emacs-Lisp/Josephus-problem
new file mode 120000
index 0000000000..64d53d8476
--- /dev/null
+++ b/Lang/Emacs-Lisp/Josephus-problem
@@ -0,0 +1 @@
+../../Task/Josephus-problem/Emacs-Lisp
\ No newline at end of file
diff --git a/Lang/Factor/Aliquot-sequence-classifications b/Lang/Factor/Aliquot-sequence-classifications
new file mode 120000
index 0000000000..b7b6c52c58
--- /dev/null
+++ b/Lang/Factor/Aliquot-sequence-classifications
@@ -0,0 +1 @@
+../../Task/Aliquot-sequence-classifications/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Define-a-primitive-data-type b/Lang/Factor/Define-a-primitive-data-type
new file mode 120000
index 0000000000..6c06b8f1e8
--- /dev/null
+++ b/Lang/Factor/Define-a-primitive-data-type
@@ -0,0 +1 @@
+../../Task/Define-a-primitive-data-type/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Identity-matrix b/Lang/Factor/Identity-matrix
new file mode 120000
index 0000000000..ae1bd0627f
--- /dev/null
+++ b/Lang/Factor/Identity-matrix
@@ -0,0 +1 @@
+../../Task/Identity-matrix/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Object-serialization b/Lang/Factor/Object-serialization
new file mode 120000
index 0000000000..196fe7a9b4
--- /dev/null
+++ b/Lang/Factor/Object-serialization
@@ -0,0 +1 @@
+../../Task/Object-serialization/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Quaternion-type b/Lang/Factor/Quaternion-type
new file mode 120000
index 0000000000..47f0548ea8
--- /dev/null
+++ b/Lang/Factor/Quaternion-type
@@ -0,0 +1 @@
+../../Task/Quaternion-type/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Queue-Usage b/Lang/Factor/Queue-Usage
new file mode 120000
index 0000000000..605effa02a
--- /dev/null
+++ b/Lang/Factor/Queue-Usage
@@ -0,0 +1 @@
+../../Task/Queue-Usage/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Rep-string b/Lang/Factor/Rep-string
new file mode 120000
index 0000000000..f67e820d7d
--- /dev/null
+++ b/Lang/Factor/Rep-string
@@ -0,0 +1 @@
+../../Task/Rep-string/Factor
\ No newline at end of file
diff --git a/Lang/Factor/SHA-256 b/Lang/Factor/SHA-256
new file mode 120000
index 0000000000..7f52fd8640
--- /dev/null
+++ b/Lang/Factor/SHA-256
@@ -0,0 +1 @@
+../../Task/SHA-256/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Stern-Brocot-sequence b/Lang/Factor/Stern-Brocot-sequence
new file mode 120000
index 0000000000..5cfa153922
--- /dev/null
+++ b/Lang/Factor/Stern-Brocot-sequence
@@ -0,0 +1 @@
+../../Task/Stern-Brocot-sequence/Factor
\ No newline at end of file
diff --git a/Lang/Factor/Strip-comments-from-a-string b/Lang/Factor/Strip-comments-from-a-string
new file mode 120000
index 0000000000..6673b8a8ed
--- /dev/null
+++ b/Lang/Factor/Strip-comments-from-a-string
@@ -0,0 +1 @@
+../../Task/Strip-comments-from-a-string/Factor
\ No newline at end of file
diff --git a/Lang/Forth/Define-a-primitive-data-type b/Lang/Forth/Define-a-primitive-data-type
new file mode 120000
index 0000000000..ae326051f1
--- /dev/null
+++ b/Lang/Forth/Define-a-primitive-data-type
@@ -0,0 +1 @@
+../../Task/Define-a-primitive-data-type/Forth
\ No newline at end of file
diff --git a/Lang/Forth/Dutch-national-flag-problem b/Lang/Forth/Dutch-national-flag-problem
new file mode 120000
index 0000000000..ffd8469ad0
--- /dev/null
+++ b/Lang/Forth/Dutch-national-flag-problem
@@ -0,0 +1 @@
+../../Task/Dutch-national-flag-problem/Forth
\ No newline at end of file
diff --git a/Lang/Forth/Metaprogramming b/Lang/Forth/Metaprogramming
new file mode 120000
index 0000000000..b7d6700b5b
--- /dev/null
+++ b/Lang/Forth/Metaprogramming
@@ -0,0 +1 @@
+../../Task/Metaprogramming/Forth
\ No newline at end of file
diff --git a/Lang/Forth/Strip-comments-from-a-string b/Lang/Forth/Strip-comments-from-a-string
new file mode 120000
index 0000000000..cf768dc597
--- /dev/null
+++ b/Lang/Forth/Strip-comments-from-a-string
@@ -0,0 +1 @@
+../../Task/Strip-comments-from-a-string/Forth
\ No newline at end of file
diff --git a/Lang/Forth/Terminal-control-Coloured-text b/Lang/Forth/Terminal-control-Coloured-text
new file mode 120000
index 0000000000..91b9c27b59
--- /dev/null
+++ b/Lang/Forth/Terminal-control-Coloured-text
@@ -0,0 +1 @@
+../../Task/Terminal-control-Coloured-text/Forth
\ No newline at end of file
diff --git a/Lang/Forth/Terminal-control-Cursor-movement b/Lang/Forth/Terminal-control-Cursor-movement
new file mode 120000
index 0000000000..2002f5b06e
--- /dev/null
+++ b/Lang/Forth/Terminal-control-Cursor-movement
@@ -0,0 +1 @@
+../../Task/Terminal-control-Cursor-movement/Forth
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Check-Machin-like-formulas b/Lang/FreeBASIC/Check-Machin-like-formulas
new file mode 120000
index 0000000000..465e258511
--- /dev/null
+++ b/Lang/FreeBASIC/Check-Machin-like-formulas
@@ -0,0 +1 @@
+../../Task/Check-Machin-like-formulas/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Evolutionary-algorithm b/Lang/FreeBASIC/Evolutionary-algorithm
new file mode 120000
index 0000000000..20bf7c0fdf
--- /dev/null
+++ b/Lang/FreeBASIC/Evolutionary-algorithm
@@ -0,0 +1 @@
+../../Task/Evolutionary-algorithm/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Hofstadter-Conway-$10,000-sequence b/Lang/FreeBASIC/Hofstadter-Conway-$10,000-sequence
new file mode 120000
index 0000000000..c85f0405f7
--- /dev/null
+++ b/Lang/FreeBASIC/Hofstadter-Conway-$10,000-sequence
@@ -0,0 +1 @@
+../../Task/Hofstadter-Conway-$10,000-sequence/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Image-noise b/Lang/FreeBASIC/Image-noise
new file mode 120000
index 0000000000..3d87ac7c47
--- /dev/null
+++ b/Lang/FreeBASIC/Image-noise
@@ -0,0 +1 @@
+../../Task/Image-noise/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Modular-inverse b/Lang/FreeBASIC/Modular-inverse
new file mode 120000
index 0000000000..e118b44614
--- /dev/null
+++ b/Lang/FreeBASIC/Modular-inverse
@@ -0,0 +1 @@
+../../Task/Modular-inverse/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Pi b/Lang/FreeBASIC/Pi
new file mode 120000
index 0000000000..4b7a27b994
--- /dev/null
+++ b/Lang/FreeBASIC/Pi
@@ -0,0 +1 @@
+../../Task/Pi/FreeBASIC
\ No newline at end of file
diff --git a/Lang/FreeBASIC/Resistor-mesh b/Lang/FreeBASIC/Resistor-mesh
new file mode 120000
index 0000000000..72ab98fdc7
--- /dev/null
+++ b/Lang/FreeBASIC/Resistor-mesh
@@ -0,0 +1 @@
+../../Task/Resistor-mesh/FreeBASIC
\ No newline at end of file
diff --git a/Lang/Futhark/Apply-a-callback-to-an-array b/Lang/Futhark/Apply-a-callback-to-an-array
new file mode 120000
index 0000000000..adad5dc876
--- /dev/null
+++ b/Lang/Futhark/Apply-a-callback-to-an-array
@@ -0,0 +1 @@
+../../Task/Apply-a-callback-to-an-array/Futhark
\ No newline at end of file
diff --git a/Lang/Go/Arithmetic-geometric-mean-Calculate-Pi b/Lang/Go/Arithmetic-geometric-mean-Calculate-Pi
new file mode 120000
index 0000000000..c5890cc072
--- /dev/null
+++ b/Lang/Go/Arithmetic-geometric-mean-Calculate-Pi
@@ -0,0 +1 @@
+../../Task/Arithmetic-geometric-mean-Calculate-Pi/Go
\ No newline at end of file
diff --git a/Lang/Go/Bitwise-IO b/Lang/Go/Bitwise-IO
new file mode 120000
index 0000000000..dea68c4ccf
--- /dev/null
+++ b/Lang/Go/Bitwise-IO
@@ -0,0 +1 @@
+../../Task/Bitwise-IO/Go
\ No newline at end of file
diff --git a/Lang/Go/Continued-fraction-Arithmetic-Construct-from-rational-number b/Lang/Go/Continued-fraction-Arithmetic-Construct-from-rational-number
new file mode 120000
index 0000000000..cbafc8eb43
--- /dev/null
+++ b/Lang/Go/Continued-fraction-Arithmetic-Construct-from-rational-number
@@ -0,0 +1 @@
+../../Task/Continued-fraction-Arithmetic-Construct-from-rational-number/Go
\ No newline at end of file
diff --git a/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N- b/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N-
new file mode 120000
index 0000000000..c87171a72e
--- /dev/null
+++ b/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N-
@@ -0,0 +1 @@
+../../Task/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N-/Go
\ No newline at end of file
diff --git a/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N1,-Contined-Fraction-N2- b/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N1,-Contined-Fraction-N2-
new file mode 120000
index 0000000000..307f3f5451
--- /dev/null
+++ b/Lang/Go/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N1,-Contined-Fraction-N2-
@@ -0,0 +1 @@
+../../Task/Continued-fraction-Arithmetic-G-matrix-NG,-Contined-Fraction-N1,-Contined-Fraction-N2-/Go
\ No newline at end of file
diff --git a/Lang/Go/First-class-environments b/Lang/Go/First-class-environments
new file mode 120000
index 0000000000..e4762546eb
--- /dev/null
+++ b/Lang/Go/First-class-environments
@@ -0,0 +1 @@
+../../Task/First-class-environments/Go
\ No newline at end of file
diff --git a/Lang/Go/Galton-box-animation b/Lang/Go/Galton-box-animation
new file mode 120000
index 0000000000..60187adcfc
--- /dev/null
+++ b/Lang/Go/Galton-box-animation
@@ -0,0 +1 @@
+../../Task/Galton-box-animation/Go
\ No newline at end of file
diff --git a/Lang/Go/Inverted-syntax b/Lang/Go/Inverted-syntax
new file mode 120000
index 0000000000..cac5a1eceb
--- /dev/null
+++ b/Lang/Go/Inverted-syntax
@@ -0,0 +1 @@
+../../Task/Inverted-syntax/Go
\ No newline at end of file
diff --git a/Lang/Go/Jensens-Device b/Lang/Go/Jensens-Device
new file mode 120000
index 0000000000..d12942b079
--- /dev/null
+++ b/Lang/Go/Jensens-Device
@@ -0,0 +1 @@
+../../Task/Jensens-Device/Go
\ No newline at end of file
diff --git a/Lang/Go/Solve-a-Hidato-puzzle b/Lang/Go/Solve-a-Hidato-puzzle
new file mode 120000
index 0000000000..d1918de413
--- /dev/null
+++ b/Lang/Go/Solve-a-Hidato-puzzle
@@ -0,0 +1 @@
+../../Task/Solve-a-Hidato-puzzle/Go
\ No newline at end of file
diff --git a/Lang/Go/Solve-a-Hopido-puzzle b/Lang/Go/Solve-a-Hopido-puzzle
new file mode 120000
index 0000000000..994e822765
--- /dev/null
+++ b/Lang/Go/Solve-a-Hopido-puzzle
@@ -0,0 +1 @@
+../../Task/Solve-a-Hopido-puzzle/Go
\ No newline at end of file
diff --git a/Lang/Go/Solve-a-Numbrix-puzzle b/Lang/Go/Solve-a-Numbrix-puzzle
new file mode 120000
index 0000000000..ffc4893813
--- /dev/null
+++ b/Lang/Go/Solve-a-Numbrix-puzzle
@@ -0,0 +1 @@
+../../Task/Solve-a-Numbrix-puzzle/Go
\ No newline at end of file
diff --git a/Lang/Go/Terminal-control-Preserve-screen b/Lang/Go/Terminal-control-Preserve-screen
new file mode 120000
index 0000000000..30316ce076
--- /dev/null
+++ b/Lang/Go/Terminal-control-Preserve-screen
@@ -0,0 +1 @@
+../../Task/Terminal-control-Preserve-screen/Go
\ No newline at end of file
diff --git a/Lang/Go/Video-display-modes b/Lang/Go/Video-display-modes
new file mode 120000
index 0000000000..5c88d2f2c3
--- /dev/null
+++ b/Lang/Go/Video-display-modes
@@ -0,0 +1 @@
+../../Task/Video-display-modes/Go
\ No newline at end of file
diff --git a/Lang/Groovy/Integer-sequence b/Lang/Groovy/Integer-sequence
new file mode 120000
index 0000000000..84cfa7f843
--- /dev/null
+++ b/Lang/Groovy/Integer-sequence
@@ -0,0 +1 @@
+../../Task/Integer-sequence/Groovy
\ No newline at end of file
diff --git a/Lang/Java/00DESCRIPTION b/Lang/Java/00DESCRIPTION
index e774c36704..7a1836ab77 100644
--- a/Lang/Java/00DESCRIPTION
+++ b/Lang/Java/00DESCRIPTION
@@ -41,6 +41,7 @@ Useful Java links:
* [http://www.java.net java.net]
* [http://openjdk.java.net OpenJDK]
* [https://hackr.io/tutorials/learn-java Hackr.io]
+* [https://reactdom.com/java ReactDOM]
==Todo==
[[Reports:Tasks_not_implemented_in_Java]]
\ No newline at end of file
diff --git a/Lang/Java/QR-decomposition b/Lang/Java/QR-decomposition
new file mode 120000
index 0000000000..6727c0afee
--- /dev/null
+++ b/Lang/Java/QR-decomposition
@@ -0,0 +1 @@
+../../Task/QR-decomposition/Java
\ No newline at end of file
diff --git a/Lang/Java/Set-of-real-numbers b/Lang/Java/Set-of-real-numbers
new file mode 120000
index 0000000000..a66f5154b6
--- /dev/null
+++ b/Lang/Java/Set-of-real-numbers
@@ -0,0 +1 @@
+../../Task/Set-of-real-numbers/Java
\ No newline at end of file
diff --git a/Lang/Java/Terminal-control-Preserve-screen b/Lang/Java/Terminal-control-Preserve-screen
new file mode 120000
index 0000000000..7877bf33e0
--- /dev/null
+++ b/Lang/Java/Terminal-control-Preserve-screen
@@ -0,0 +1 @@
+../../Task/Terminal-control-Preserve-screen/Java
\ No newline at end of file
diff --git a/Lang/K/Digital-root b/Lang/K/Digital-root
new file mode 120000
index 0000000000..5d10f44bf6
--- /dev/null
+++ b/Lang/K/Digital-root
@@ -0,0 +1 @@
+../../Task/Digital-root/K
\ No newline at end of file
diff --git a/Lang/K/Even-or-odd b/Lang/K/Even-or-odd
new file mode 120000
index 0000000000..73aabe8e67
--- /dev/null
+++ b/Lang/K/Even-or-odd
@@ -0,0 +1 @@
+../../Task/Even-or-odd/K
\ No newline at end of file
diff --git a/Lang/K/Harshad-or-Niven-series b/Lang/K/Harshad-or-Niven-series
new file mode 120000
index 0000000000..1fb6025473
--- /dev/null
+++ b/Lang/K/Harshad-or-Niven-series
@@ -0,0 +1 @@
+../../Task/Harshad-or-Niven-series/K
\ No newline at end of file
diff --git a/Lang/K/Hello-world-Text b/Lang/K/Hello-world-Text
new file mode 120000
index 0000000000..aa64b5d31a
--- /dev/null
+++ b/Lang/K/Hello-world-Text
@@ -0,0 +1 @@
+../../Task/Hello-world-Text/K
\ No newline at end of file
diff --git a/Lang/K/Hostname b/Lang/K/Hostname
new file mode 120000
index 0000000000..7ec5e2e255
--- /dev/null
+++ b/Lang/K/Hostname
@@ -0,0 +1 @@
+../../Task/Hostname/K
\ No newline at end of file
diff --git a/Lang/K/Loops-While b/Lang/K/Loops-While
new file mode 120000
index 0000000000..d180cdb514
--- /dev/null
+++ b/Lang/K/Loops-While
@@ -0,0 +1 @@
+../../Task/Loops-While/K
\ No newline at end of file
diff --git a/Lang/K/Reverse-a-string b/Lang/K/Reverse-a-string
new file mode 120000
index 0000000000..c48b912019
--- /dev/null
+++ b/Lang/K/Reverse-a-string
@@ -0,0 +1 @@
+../../Task/Reverse-a-string/K
\ No newline at end of file
diff --git a/Lang/K/String-concatenation b/Lang/K/String-concatenation
new file mode 120000
index 0000000000..abce1fdd53
--- /dev/null
+++ b/Lang/K/String-concatenation
@@ -0,0 +1 @@
+../../Task/String-concatenation/K
\ No newline at end of file
diff --git a/Lang/K/String-length b/Lang/K/String-length
new file mode 120000
index 0000000000..6ed1e9d2d3
--- /dev/null
+++ b/Lang/K/String-length
@@ -0,0 +1 @@
+../../Task/String-length/K
\ No newline at end of file
diff --git a/Lang/K/String-prepend b/Lang/K/String-prepend
new file mode 120000
index 0000000000..d618cbdcbe
--- /dev/null
+++ b/Lang/K/String-prepend
@@ -0,0 +1 @@
+../../Task/String-prepend/K
\ No newline at end of file
diff --git a/Lang/K/Substring-Top-and-tail b/Lang/K/Substring-Top-and-tail
new file mode 120000
index 0000000000..febe6ba8c6
--- /dev/null
+++ b/Lang/K/Substring-Top-and-tail
@@ -0,0 +1 @@
+../../Task/Substring-Top-and-tail/K
\ No newline at end of file
diff --git a/Lang/Lambdatalk/Hello-world-Text b/Lang/Lambdatalk/Hello-world-Text
new file mode 120000
index 0000000000..49821676df
--- /dev/null
+++ b/Lang/Lambdatalk/Hello-world-Text
@@ -0,0 +1 @@
+../../Task/Hello-world-Text/Lambdatalk
\ No newline at end of file
diff --git a/Lang/Lua/00DESCRIPTION b/Lang/Lua/00DESCRIPTION
index e9b2b8d8e6..54480e0394 100644
--- a/Lang/Lua/00DESCRIPTION
+++ b/Lang/Lua/00DESCRIPTION
@@ -23,7 +23,7 @@ As a result, the base language is lightβin fact, the full reference interprete
==Unimplemented programming tasks==
Output from [[Find_unimplemented_tasks]] :
-Lua has 334 unimplemented programming tasks:
+Lua has 338 unimplemented programming tasks:
15 puzzle solver
2048
4-rings or 4-squares puzzle
@@ -32,6 +32,7 @@ Lua has 334 unimplemented programming tasks:
Active Directory/Connect
Active Directory/Search for a user
Active object
+ Address of a variable
Aliquot sequence classifications
Anagrams/Deranged anagrams
Animation
@@ -82,12 +83,14 @@ Lua has 334 unimplemented programming tasks:
Combinations and permutations
Commatizing numbers
Compare sorting algorithms' performance
+ Compile-time calculation
Compiler/AST interpreter
Compiler/code generator
Compiler/lexical analyzer
Compiler/syntax analyzer
Compiler/virtual machine interpreter
Conjugate transpose
+ Constrained genericity
Constrained random points on a circle
Continued fraction
Continued fraction/Arithmetic/Construct from rational number
@@ -95,7 +98,6 @@ Lua has 334 unimplemented programming tasks:
Create a file on magnetic tape
Create an object at a given address
Cut a rectangle
- DNS query
Death Star
Deconvolution/2D+
Define a primitive data type
@@ -131,26 +133,26 @@ Lua has 334 unimplemented programming tasks:
Find largest left truncatable prime in a given base
Find palindromic numbers in both binary and ternary bases
Floyd-Warshall algorithm
+ Four is the number of letters in the ...
Fractran
Function frequency
- GUI/Maximum window dimensions
GUI component interaction
GUI enabling/disabling of controls
+ GUI/Maximum window dimensions
Galton box animation
Gaussian elimination
Go Fish
Greyscale bars/Display
- HTTPS
- HTTPS/Authenticated
HTTPS/Client-authenticated
Handle a signal
Hash join
Hello world/Line printer
Hello world/Web server
Hickerson series of almost integers
- Hofstadter-Conway $10,000 sequence
+ History variables
Hofstadter Figure-Figure sequences
Hofstadter Q sequence
+ Hofstadter-Conway $10,000 sequence
Honeycombs
Horizontal sundial calculations
Host introspection
@@ -167,7 +169,6 @@ Lua has 334 unimplemented programming tasks:
Julia set
K-d tree
K-means++ clustering
- Kernighans large earthquake problem
Keyboard input/Flush the keyboard buffer
Keyboard input/Keypress check
Keyboard input/Obtain a Y or N response
@@ -213,6 +214,7 @@ Lua has 334 unimplemented programming tasks:
Object serialization
Odd word problem
Old lady swallowed a fly
+ OpenWebNet Password
Paraffins
Parallel Brute Force
Parallel calculations
@@ -249,6 +251,7 @@ Lua has 334 unimplemented programming tasks:
Pythagorean triples
QR decomposition
RCRPG
+ RPG Attributes Generator
RSA code
Ramer-Douglas-Peucker line simplification
Random number generator (device)
@@ -265,7 +268,6 @@ Lua has 334 unimplemented programming tasks:
Retrieve and search chat history
Rosetta Code/Count examples
Rosetta Code/Find bare lang tags
- Rosetta Code/Find unimplemented tasks
Rosetta Code/Rank languages by popularity
Runge-Kutta method
S-Expressions
@@ -275,8 +277,9 @@ Lua has 334 unimplemented programming tasks:
Safe addition
Sailors, coconuts and a monkey problem
Same Fringe
- Scope/Function names and labels
Scope modifiers
+ Scope/Function names and labels
+ Sequence of primorial primes
Set consolidation
Set of real numbers
Set puzzle
@@ -300,6 +303,7 @@ Lua has 334 unimplemented programming tasks:
Sorting algorithms/Strand sort
Sparkline in unicode
Speech synthesis
+ Spinning rod animation/Text
Start from a main routine
State name puzzle
Stream Merge
@@ -336,9 +340,9 @@ Lua has 334 unimplemented programming tasks:
Use another language to call a function
User input/Graphical
Vampire number
- Variable-length quantity
Variable size/Get
Variable size/Set
+ Variable-length quantity
Verify distribution uniformity/Chi-squared test
Verify distribution uniformity/Naive
Video display modes
diff --git a/Lang/Lua/DNS-query b/Lang/Lua/DNS-query
new file mode 120000
index 0000000000..a0ab5d1c1f
--- /dev/null
+++ b/Lang/Lua/DNS-query
@@ -0,0 +1 @@
+../../Task/DNS-query/Lua
\ No newline at end of file
diff --git a/Lang/Lua/HTTPS b/Lang/Lua/HTTPS
new file mode 120000
index 0000000000..d1caff47f0
--- /dev/null
+++ b/Lang/Lua/HTTPS
@@ -0,0 +1 @@
+../../Task/HTTPS/Lua
\ No newline at end of file
diff --git a/Lang/Lua/HTTPS-Authenticated b/Lang/Lua/HTTPS-Authenticated
new file mode 120000
index 0000000000..12b2e7345a
--- /dev/null
+++ b/Lang/Lua/HTTPS-Authenticated
@@ -0,0 +1 @@
+../../Task/HTTPS-Authenticated/Lua
\ No newline at end of file
diff --git a/Lang/Maple/Almost-prime b/Lang/Maple/Almost-prime
new file mode 120000
index 0000000000..dafd6b33ab
--- /dev/null
+++ b/Lang/Maple/Almost-prime
@@ -0,0 +1 @@
+../../Task/Almost-prime/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Hough-transform b/Lang/Maple/Hough-transform
new file mode 120000
index 0000000000..b41e4b7874
--- /dev/null
+++ b/Lang/Maple/Hough-transform
@@ -0,0 +1 @@
+../../Task/Hough-transform/Maple
\ No newline at end of file
diff --git a/Lang/Maple/I-before-E-except-after-C b/Lang/Maple/I-before-E-except-after-C
new file mode 120000
index 0000000000..24c603bac9
--- /dev/null
+++ b/Lang/Maple/I-before-E-except-after-C
@@ -0,0 +1 @@
+../../Task/I-before-E-except-after-C/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Image-convolution b/Lang/Maple/Image-convolution
new file mode 120000
index 0000000000..361a9b3b17
--- /dev/null
+++ b/Lang/Maple/Image-convolution
@@ -0,0 +1 @@
+../../Task/Image-convolution/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Knapsack-problem-0-1 b/Lang/Maple/Knapsack-problem-0-1
new file mode 120000
index 0000000000..b2ff7a1a24
--- /dev/null
+++ b/Lang/Maple/Knapsack-problem-0-1
@@ -0,0 +1 @@
+../../Task/Knapsack-problem-0-1/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Order-two-numerical-lists b/Lang/Maple/Order-two-numerical-lists
new file mode 120000
index 0000000000..f0255eda8b
--- /dev/null
+++ b/Lang/Maple/Order-two-numerical-lists
@@ -0,0 +1 @@
+../../Task/Order-two-numerical-lists/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Phrase-reversals b/Lang/Maple/Phrase-reversals
new file mode 120000
index 0000000000..ae181465e1
--- /dev/null
+++ b/Lang/Maple/Phrase-reversals
@@ -0,0 +1 @@
+../../Task/Phrase-reversals/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Plot-coordinate-pairs b/Lang/Maple/Plot-coordinate-pairs
new file mode 120000
index 0000000000..72efdae0b6
--- /dev/null
+++ b/Lang/Maple/Plot-coordinate-pairs
@@ -0,0 +1 @@
+../../Task/Plot-coordinate-pairs/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Queue-Usage b/Lang/Maple/Queue-Usage
new file mode 120000
index 0000000000..d85470f3e8
--- /dev/null
+++ b/Lang/Maple/Queue-Usage
@@ -0,0 +1 @@
+../../Task/Queue-Usage/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Range-extraction b/Lang/Maple/Range-extraction
new file mode 120000
index 0000000000..b4ecd1a817
--- /dev/null
+++ b/Lang/Maple/Range-extraction
@@ -0,0 +1 @@
+../../Task/Range-extraction/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Read-a-specific-line-from-a-file b/Lang/Maple/Read-a-specific-line-from-a-file
new file mode 120000
index 0000000000..ebcfc533a2
--- /dev/null
+++ b/Lang/Maple/Read-a-specific-line-from-a-file
@@ -0,0 +1 @@
+../../Task/Read-a-specific-line-from-a-file/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Reverse-words-in-a-string b/Lang/Maple/Reverse-words-in-a-string
new file mode 120000
index 0000000000..99690e9139
--- /dev/null
+++ b/Lang/Maple/Reverse-words-in-a-string
@@ -0,0 +1 @@
+../../Task/Reverse-words-in-a-string/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Short-circuit-evaluation b/Lang/Maple/Short-circuit-evaluation
new file mode 120000
index 0000000000..612a37ee51
--- /dev/null
+++ b/Lang/Maple/Short-circuit-evaluation
@@ -0,0 +1 @@
+../../Task/Short-circuit-evaluation/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Sort-disjoint-sublist b/Lang/Maple/Sort-disjoint-sublist
new file mode 120000
index 0000000000..557a81f30d
--- /dev/null
+++ b/Lang/Maple/Sort-disjoint-sublist
@@ -0,0 +1 @@
+../../Task/Sort-disjoint-sublist/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Sorting-algorithms-Pancake-sort b/Lang/Maple/Sorting-algorithms-Pancake-sort
new file mode 120000
index 0000000000..fc44056d2d
--- /dev/null
+++ b/Lang/Maple/Sorting-algorithms-Pancake-sort
@@ -0,0 +1 @@
+../../Task/Sorting-algorithms-Pancake-sort/Maple
\ No newline at end of file
diff --git a/Lang/Maple/Vector-products b/Lang/Maple/Vector-products
new file mode 120000
index 0000000000..22c24bc796
--- /dev/null
+++ b/Lang/Maple/Vector-products
@@ -0,0 +1 @@
+../../Task/Vector-products/Maple
\ No newline at end of file
diff --git a/Lang/Mathematica/MD4 b/Lang/Mathematica/MD4
new file mode 120000
index 0000000000..89f8ffcde9
--- /dev/null
+++ b/Lang/Mathematica/MD4
@@ -0,0 +1 @@
+../../Task/MD4/Mathematica
\ No newline at end of file
diff --git a/Lang/Mathematica/RIPEMD-160 b/Lang/Mathematica/RIPEMD-160
new file mode 120000
index 0000000000..210a84478d
--- /dev/null
+++ b/Lang/Mathematica/RIPEMD-160
@@ -0,0 +1 @@
+../../Task/RIPEMD-160/Mathematica
\ No newline at end of file
diff --git a/Lang/Modula-2/Binary-digits b/Lang/Modula-2/Binary-digits
new file mode 120000
index 0000000000..fcb321c51f
--- /dev/null
+++ b/Lang/Modula-2/Binary-digits
@@ -0,0 +1 @@
+../../Task/Binary-digits/Modula-2
\ No newline at end of file
diff --git a/Lang/NewLISP/Ackermann-function b/Lang/NewLISP/Ackermann-function
new file mode 120000
index 0000000000..29a3ab2ae4
--- /dev/null
+++ b/Lang/NewLISP/Ackermann-function
@@ -0,0 +1 @@
+../../Task/Ackermann-function/NewLISP
\ No newline at end of file
diff --git a/Lang/NewLISP/Detect-division-by-zero b/Lang/NewLISP/Detect-division-by-zero
new file mode 120000
index 0000000000..09378a641b
--- /dev/null
+++ b/Lang/NewLISP/Detect-division-by-zero
@@ -0,0 +1 @@
+../../Task/Detect-division-by-zero/NewLISP
\ No newline at end of file
diff --git a/Lang/NewLISP/Null-object b/Lang/NewLISP/Null-object
new file mode 120000
index 0000000000..14cb161161
--- /dev/null
+++ b/Lang/NewLISP/Null-object
@@ -0,0 +1 @@
+../../Task/Null-object/NewLISP
\ No newline at end of file
diff --git a/Lang/Nial/Zero-to-the-zero-power b/Lang/Nial/Zero-to-the-zero-power
new file mode 120000
index 0000000000..7993d98c3e
--- /dev/null
+++ b/Lang/Nial/Zero-to-the-zero-power
@@ -0,0 +1 @@
+../../Task/Zero-to-the-zero-power/Nial
\ No newline at end of file
diff --git a/Lang/Ol/Matrix-multiplication b/Lang/Ol/Matrix-multiplication
new file mode 120000
index 0000000000..2f923b35de
--- /dev/null
+++ b/Lang/Ol/Matrix-multiplication
@@ -0,0 +1 @@
+../../Task/Matrix-multiplication/Ol
\ No newline at end of file
diff --git a/Lang/PARI-GP/00DESCRIPTION b/Lang/PARI-GP/00DESCRIPTION
index 573c623854..21b73ea162 100644
--- a/Lang/PARI-GP/00DESCRIPTION
+++ b/Lang/PARI-GP/00DESCRIPTION
@@ -57,6 +57,11 @@ PARI/GP can be used in many different operating systems. For other systems, see
| [https://apps.fedoraproject.org/packages/pari-gp Fedora packages]
| sudo dnf install pari-gp
|-
+| Arch
+| package manager
+| [https://www.archlinux.org/packages/community/x86_64/pari/ Arch packages]
+| sudo pacman -S pari
+|-
| RHEL/CentOS
| package manager
|
diff --git a/Lang/PHP/Strip-block-comments b/Lang/PHP/Strip-block-comments
new file mode 120000
index 0000000000..669304c826
--- /dev/null
+++ b/Lang/PHP/Strip-block-comments
@@ -0,0 +1 @@
+../../Task/Strip-block-comments/PHP
\ No newline at end of file
diff --git a/Lang/PL-I/Jump-anywhere b/Lang/PL-I/Jump-anywhere
new file mode 120000
index 0000000000..0ca40a4bf0
--- /dev/null
+++ b/Lang/PL-I/Jump-anywhere
@@ -0,0 +1 @@
+../../Task/Jump-anywhere/PL-I
\ No newline at end of file
diff --git a/Lang/Perl/Solve-a-Numbrix-puzzle b/Lang/Perl/Solve-a-Numbrix-puzzle
new file mode 120000
index 0000000000..a62987d728
--- /dev/null
+++ b/Lang/Perl/Solve-a-Numbrix-puzzle
@@ -0,0 +1 @@
+../../Task/Solve-a-Numbrix-puzzle/Perl
\ No newline at end of file
diff --git a/Lang/Phix/Bitcoin-address-validation b/Lang/Phix/Bitcoin-address-validation
new file mode 120000
index 0000000000..fc9c43cb6c
--- /dev/null
+++ b/Lang/Phix/Bitcoin-address-validation
@@ -0,0 +1 @@
+../../Task/Bitcoin-address-validation/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Bitcoin-public-point-to-address b/Lang/Phix/Bitcoin-public-point-to-address
new file mode 120000
index 0000000000..58b94c353b
--- /dev/null
+++ b/Lang/Phix/Bitcoin-public-point-to-address
@@ -0,0 +1 @@
+../../Task/Bitcoin-public-point-to-address/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Delegates b/Lang/Phix/Delegates
new file mode 120000
index 0000000000..df72f53574
--- /dev/null
+++ b/Lang/Phix/Delegates
@@ -0,0 +1 @@
+../../Task/Delegates/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Digital-root-Multiplicative-digital-root b/Lang/Phix/Digital-root-Multiplicative-digital-root
new file mode 120000
index 0000000000..af7a305341
--- /dev/null
+++ b/Lang/Phix/Digital-root-Multiplicative-digital-root
@@ -0,0 +1 @@
+../../Task/Digital-root-Multiplicative-digital-root/Phix
\ No newline at end of file
diff --git a/Lang/Phix/HTTP b/Lang/Phix/HTTP
new file mode 120000
index 0000000000..25ad186f8b
--- /dev/null
+++ b/Lang/Phix/HTTP
@@ -0,0 +1 @@
+../../Task/HTTP/Phix
\ No newline at end of file
diff --git a/Lang/Phix/HTTPS b/Lang/Phix/HTTPS
new file mode 120000
index 0000000000..7362e42cee
--- /dev/null
+++ b/Lang/Phix/HTTPS
@@ -0,0 +1 @@
+../../Task/HTTPS/Phix
\ No newline at end of file
diff --git a/Lang/Phix/HTTPS-Authenticated b/Lang/Phix/HTTPS-Authenticated
new file mode 120000
index 0000000000..d94110f147
--- /dev/null
+++ b/Lang/Phix/HTTPS-Authenticated
@@ -0,0 +1 @@
+../../Task/HTTPS-Authenticated/Phix
\ No newline at end of file
diff --git a/Lang/Phix/HTTPS-Client-authenticated b/Lang/Phix/HTTPS-Client-authenticated
new file mode 120000
index 0000000000..ac61134afd
--- /dev/null
+++ b/Lang/Phix/HTTPS-Client-authenticated
@@ -0,0 +1 @@
+../../Task/HTTPS-Client-authenticated/Phix
\ No newline at end of file
diff --git a/Lang/Phix/History-variables b/Lang/Phix/History-variables
new file mode 120000
index 0000000000..273625d527
--- /dev/null
+++ b/Lang/Phix/History-variables
@@ -0,0 +1 @@
+../../Task/History-variables/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Huffman-coding b/Lang/Phix/Huffman-coding
new file mode 120000
index 0000000000..fb52b2dd3f
--- /dev/null
+++ b/Lang/Phix/Huffman-coding
@@ -0,0 +1 @@
+../../Task/Huffman-coding/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Keyboard-macros b/Lang/Phix/Keyboard-macros
new file mode 120000
index 0000000000..53c66e1cff
--- /dev/null
+++ b/Lang/Phix/Keyboard-macros
@@ -0,0 +1 @@
+../../Task/Keyboard-macros/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Knuths-algorithm-S b/Lang/Phix/Knuths-algorithm-S
new file mode 120000
index 0000000000..1f38123be8
--- /dev/null
+++ b/Lang/Phix/Knuths-algorithm-S
@@ -0,0 +1 @@
+../../Task/Knuths-algorithm-S/Phix
\ No newline at end of file
diff --git a/Lang/Phix/LU-decomposition b/Lang/Phix/LU-decomposition
new file mode 120000
index 0000000000..f8fb43cd8f
--- /dev/null
+++ b/Lang/Phix/LU-decomposition
@@ -0,0 +1 @@
+../../Task/LU-decomposition/Phix
\ No newline at end of file
diff --git a/Lang/Phix/MD4 b/Lang/Phix/MD4
new file mode 120000
index 0000000000..b953e7d57f
--- /dev/null
+++ b/Lang/Phix/MD4
@@ -0,0 +1 @@
+../../Task/MD4/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Main-step-of-GOST-28147-89 b/Lang/Phix/Main-step-of-GOST-28147-89
new file mode 120000
index 0000000000..2447b051be
--- /dev/null
+++ b/Lang/Phix/Main-step-of-GOST-28147-89
@@ -0,0 +1 @@
+../../Task/Main-step-of-GOST-28147-89/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Metronome b/Lang/Phix/Metronome
new file mode 120000
index 0000000000..f190448f2e
--- /dev/null
+++ b/Lang/Phix/Metronome
@@ -0,0 +1 @@
+../../Task/Metronome/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Minesweeper-game b/Lang/Phix/Minesweeper-game
new file mode 120000
index 0000000000..9f7e6af8d7
--- /dev/null
+++ b/Lang/Phix/Minesweeper-game
@@ -0,0 +1 @@
+../../Task/Minesweeper-game/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Nautical-bell b/Lang/Phix/Nautical-bell
new file mode 120000
index 0000000000..685a87f59b
--- /dev/null
+++ b/Lang/Phix/Nautical-bell
@@ -0,0 +1 @@
+../../Task/Nautical-bell/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Parametrized-SQL-statement b/Lang/Phix/Parametrized-SQL-statement
new file mode 120000
index 0000000000..499522211a
--- /dev/null
+++ b/Lang/Phix/Parametrized-SQL-statement
@@ -0,0 +1 @@
+../../Task/Parametrized-SQL-statement/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Pascals-triangle-Puzzle b/Lang/Phix/Pascals-triangle-Puzzle
new file mode 120000
index 0000000000..2044a99191
--- /dev/null
+++ b/Lang/Phix/Pascals-triangle-Puzzle
@@ -0,0 +1 @@
+../../Task/Pascals-triangle-Puzzle/Phix
\ No newline at end of file
diff --git a/Lang/Phix/RIPEMD-160 b/Lang/Phix/RIPEMD-160
new file mode 120000
index 0000000000..6f1a61d55d
--- /dev/null
+++ b/Lang/Phix/RIPEMD-160
@@ -0,0 +1 @@
+../../Task/RIPEMD-160/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Random-number-generator--device- b/Lang/Phix/Random-number-generator--device-
new file mode 120000
index 0000000000..45e3b31431
--- /dev/null
+++ b/Lang/Phix/Random-number-generator--device-
@@ -0,0 +1 @@
+../../Task/Random-number-generator--device-/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Respond-to-an-unknown-method-call b/Lang/Phix/Respond-to-an-unknown-method-call
new file mode 120000
index 0000000000..d5f6108f88
--- /dev/null
+++ b/Lang/Phix/Respond-to-an-unknown-method-call
@@ -0,0 +1 @@
+../../Task/Respond-to-an-unknown-method-call/Phix
\ No newline at end of file
diff --git a/Lang/Phix/SHA-1 b/Lang/Phix/SHA-1
new file mode 120000
index 0000000000..b95b39bf4c
--- /dev/null
+++ b/Lang/Phix/SHA-1
@@ -0,0 +1 @@
+../../Task/SHA-1/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Strip-control-codes-and-extended-characters-from-a-string b/Lang/Phix/Strip-control-codes-and-extended-characters-from-a-string
new file mode 120000
index 0000000000..bf4070d360
--- /dev/null
+++ b/Lang/Phix/Strip-control-codes-and-extended-characters-from-a-string
@@ -0,0 +1 @@
+../../Task/Strip-control-codes-and-extended-characters-from-a-string/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Table-creation-Postal-addresses b/Lang/Phix/Table-creation-Postal-addresses
new file mode 120000
index 0000000000..f9d33edb5a
--- /dev/null
+++ b/Lang/Phix/Table-creation-Postal-addresses
@@ -0,0 +1 @@
+../../Task/Table-creation-Postal-addresses/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Terminal-control-Preserve-screen b/Lang/Phix/Terminal-control-Preserve-screen
new file mode 120000
index 0000000000..e540e84aa1
--- /dev/null
+++ b/Lang/Phix/Terminal-control-Preserve-screen
@@ -0,0 +1 @@
+../../Task/Terminal-control-Preserve-screen/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Terminal-control-Unicode-output b/Lang/Phix/Terminal-control-Unicode-output
new file mode 120000
index 0000000000..93c326d4b9
--- /dev/null
+++ b/Lang/Phix/Terminal-control-Unicode-output
@@ -0,0 +1 @@
+../../Task/Terminal-control-Unicode-output/Phix
\ No newline at end of file
diff --git a/Lang/Phix/Video-display-modes b/Lang/Phix/Video-display-modes
new file mode 120000
index 0000000000..e6245a129f
--- /dev/null
+++ b/Lang/Phix/Video-display-modes
@@ -0,0 +1 @@
+../../Task/Video-display-modes/Phix
\ No newline at end of file
diff --git a/Lang/Python/99-Bottles-of-Beer b/Lang/Python/99-Bottles-of-Beer
new file mode 120000
index 0000000000..7f8b6fa2de
--- /dev/null
+++ b/Lang/Python/99-Bottles-of-Beer
@@ -0,0 +1 @@
+../../Task/99-Bottles-of-Beer/Python
\ No newline at end of file
diff --git a/Lang/Python/Bitmap-Histogram b/Lang/Python/Bitmap-Histogram
new file mode 120000
index 0000000000..8487bc20be
--- /dev/null
+++ b/Lang/Python/Bitmap-Histogram
@@ -0,0 +1 @@
+../../Task/Bitmap-Histogram/Python
\ No newline at end of file
diff --git a/Lang/REXX/00DESCRIPTION b/Lang/REXX/00DESCRIPTION
index 33d950dd4e..05071df6e0 100644
--- a/Lang/REXX/00DESCRIPTION
+++ b/Lang/REXX/00DESCRIPTION
@@ -8,8 +8,11 @@
|checking=dynamic
|parampass=value}}
{{Wikipedia|REXX}}
+
+
REXX (REstructured eXtended eXecutor) is an interpreted programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both proprietary and open source interpreters for REXX are available on a wide range of computing platforms, and compilers are available for IBM mainframes.
+
* '''[[wp:ARexx|ARexx]]''' is a classic REXX implementation (with extensions) for the AmigaOS, given in bundle since AmigaOS 2. (Regina REXX has specific support for the extended functions that were introduced in ARexx.) ARexx was written in 1987 by William S. Hawes.
* '''[[Brexx]]''' a classic REXX written by Vassilis N. Vlachoudis, it is free and it's open source and available under the GNU General Public License.
diff --git a/Lang/Ring/Amb b/Lang/Ring/Amb
new file mode 120000
index 0000000000..054928ac3a
--- /dev/null
+++ b/Lang/Ring/Amb
@@ -0,0 +1 @@
+../../Task/Amb/Ring
\ No newline at end of file
diff --git a/Lang/Ring/CSV-data-manipulation b/Lang/Ring/CSV-data-manipulation
new file mode 120000
index 0000000000..802809aa5f
--- /dev/null
+++ b/Lang/Ring/CSV-data-manipulation
@@ -0,0 +1 @@
+../../Task/CSV-data-manipulation/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Calendar---for-REAL-programmers b/Lang/Ring/Calendar---for-REAL-programmers
new file mode 120000
index 0000000000..c46a701e0f
--- /dev/null
+++ b/Lang/Ring/Calendar---for-REAL-programmers
@@ -0,0 +1 @@
+../../Task/Calendar---for-REAL-programmers/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Create-an-HTML-table b/Lang/Ring/Create-an-HTML-table
new file mode 120000
index 0000000000..39dda35fc9
--- /dev/null
+++ b/Lang/Ring/Create-an-HTML-table
@@ -0,0 +1 @@
+../../Task/Create-an-HTML-table/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Determine-if-only-one-instance-is-running b/Lang/Ring/Determine-if-only-one-instance-is-running
new file mode 120000
index 0000000000..f6941be5e3
--- /dev/null
+++ b/Lang/Ring/Determine-if-only-one-instance-is-running
@@ -0,0 +1 @@
+../../Task/Determine-if-only-one-instance-is-running/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Flipping-bits-game b/Lang/Ring/Flipping-bits-game
new file mode 120000
index 0000000000..b74a924c17
--- /dev/null
+++ b/Lang/Ring/Flipping-bits-game
@@ -0,0 +1 @@
+../../Task/Flipping-bits-game/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Function-composition b/Lang/Ring/Function-composition
new file mode 120000
index 0000000000..e63b2ac6ed
--- /dev/null
+++ b/Lang/Ring/Function-composition
@@ -0,0 +1 @@
+../../Task/Function-composition/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Inheritance-Multiple b/Lang/Ring/Inheritance-Multiple
new file mode 120000
index 0000000000..cf39ee60b1
--- /dev/null
+++ b/Lang/Ring/Inheritance-Multiple
@@ -0,0 +1 @@
+../../Task/Inheritance-Multiple/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Introspection b/Lang/Ring/Introspection
new file mode 120000
index 0000000000..7fd026aea8
--- /dev/null
+++ b/Lang/Ring/Introspection
@@ -0,0 +1 @@
+../../Task/Introspection/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Keyboard-input-Flush-the-keyboard-buffer b/Lang/Ring/Keyboard-input-Flush-the-keyboard-buffer
new file mode 120000
index 0000000000..b253b6e247
--- /dev/null
+++ b/Lang/Ring/Keyboard-input-Flush-the-keyboard-buffer
@@ -0,0 +1 @@
+../../Task/Keyboard-input-Flush-the-keyboard-buffer/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Queue-Definition b/Lang/Ring/Queue-Definition
new file mode 120000
index 0000000000..dcf9046fb7
--- /dev/null
+++ b/Lang/Ring/Queue-Definition
@@ -0,0 +1 @@
+../../Task/Queue-Definition/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Stack b/Lang/Ring/Stack
new file mode 120000
index 0000000000..a471895a70
--- /dev/null
+++ b/Lang/Ring/Stack
@@ -0,0 +1 @@
+../../Task/Stack/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Terminal-control-Hiding-the-cursor b/Lang/Ring/Terminal-control-Hiding-the-cursor
new file mode 120000
index 0000000000..9757137481
--- /dev/null
+++ b/Lang/Ring/Terminal-control-Hiding-the-cursor
@@ -0,0 +1 @@
+../../Task/Terminal-control-Hiding-the-cursor/Ring
\ No newline at end of file
diff --git a/Lang/Ring/Terminal-control-Preserve-screen b/Lang/Ring/Terminal-control-Preserve-screen
new file mode 120000
index 0000000000..7f3c74876b
--- /dev/null
+++ b/Lang/Ring/Terminal-control-Preserve-screen
@@ -0,0 +1 @@
+../../Task/Terminal-control-Preserve-screen/Ring
\ No newline at end of file
diff --git a/Lang/Rust/Fast-Fourier-transform b/Lang/Rust/Fast-Fourier-transform
new file mode 120000
index 0000000000..d498a7cdfb
--- /dev/null
+++ b/Lang/Rust/Fast-Fourier-transform
@@ -0,0 +1 @@
+../../Task/Fast-Fourier-transform/Rust
\ No newline at end of file
diff --git a/Lang/Scala/Active-Directory-Search-for-a-user b/Lang/Scala/Active-Directory-Search-for-a-user
new file mode 120000
index 0000000000..d705b38b40
--- /dev/null
+++ b/Lang/Scala/Active-Directory-Search-for-a-user
@@ -0,0 +1 @@
+../../Task/Active-Directory-Search-for-a-user/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Brownian-tree b/Lang/Scala/Brownian-tree
new file mode 120000
index 0000000000..bbbe8dbd8f
--- /dev/null
+++ b/Lang/Scala/Brownian-tree
@@ -0,0 +1 @@
+../../Task/Brownian-tree/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Checkpoint-synchronization b/Lang/Scala/Checkpoint-synchronization
new file mode 120000
index 0000000000..4d11ae0dad
--- /dev/null
+++ b/Lang/Scala/Checkpoint-synchronization
@@ -0,0 +1 @@
+../../Task/Checkpoint-synchronization/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Chinese-remainder-theorem b/Lang/Scala/Chinese-remainder-theorem
new file mode 120000
index 0000000000..702958d3b9
--- /dev/null
+++ b/Lang/Scala/Chinese-remainder-theorem
@@ -0,0 +1 @@
+../../Task/Chinese-remainder-theorem/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Colour-pinstripe-Display b/Lang/Scala/Colour-pinstripe-Display
new file mode 120000
index 0000000000..3a5dfbc46f
--- /dev/null
+++ b/Lang/Scala/Colour-pinstripe-Display
@@ -0,0 +1 @@
+../../Task/Colour-pinstripe-Display/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Convert-decimal-number-to-rational b/Lang/Scala/Convert-decimal-number-to-rational
new file mode 120000
index 0000000000..57717b1780
--- /dev/null
+++ b/Lang/Scala/Convert-decimal-number-to-rational
@@ -0,0 +1 @@
+../../Task/Convert-decimal-number-to-rational/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Deconvolution-1D b/Lang/Scala/Deconvolution-1D
new file mode 120000
index 0000000000..760cc093c6
--- /dev/null
+++ b/Lang/Scala/Deconvolution-1D
@@ -0,0 +1 @@
+../../Task/Deconvolution-1D/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Delegates b/Lang/Scala/Delegates
new file mode 120000
index 0000000000..8ecbf43a52
--- /dev/null
+++ b/Lang/Scala/Delegates
@@ -0,0 +1 @@
+../../Task/Delegates/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Determine-if-only-one-instance-is-running b/Lang/Scala/Determine-if-only-one-instance-is-running
new file mode 120000
index 0000000000..02db7696c5
--- /dev/null
+++ b/Lang/Scala/Determine-if-only-one-instance-is-running
@@ -0,0 +1 @@
+../../Task/Determine-if-only-one-instance-is-running/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Documentation b/Lang/Scala/Documentation
new file mode 120000
index 0000000000..d17e2d35a5
--- /dev/null
+++ b/Lang/Scala/Documentation
@@ -0,0 +1 @@
+../../Task/Documentation/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Doubly-linked-list-Traversal b/Lang/Scala/Doubly-linked-list-Traversal
new file mode 120000
index 0000000000..f467abe4c2
--- /dev/null
+++ b/Lang/Scala/Doubly-linked-list-Traversal
@@ -0,0 +1 @@
+../../Task/Doubly-linked-list-Traversal/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Draw-a-cuboid b/Lang/Scala/Draw-a-cuboid
new file mode 120000
index 0000000000..2a551a56e2
--- /dev/null
+++ b/Lang/Scala/Draw-a-cuboid
@@ -0,0 +1 @@
+../../Task/Draw-a-cuboid/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Find-largest-left-truncatable-prime-in-a-given-base b/Lang/Scala/Find-largest-left-truncatable-prime-in-a-given-base
new file mode 120000
index 0000000000..b2ad83a6e5
--- /dev/null
+++ b/Lang/Scala/Find-largest-left-truncatable-prime-in-a-given-base
@@ -0,0 +1 @@
+../../Task/Find-largest-left-truncatable-prime-in-a-given-base/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Horizontal-sundial-calculations b/Lang/Scala/Horizontal-sundial-calculations
new file mode 120000
index 0000000000..910f813674
--- /dev/null
+++ b/Lang/Scala/Horizontal-sundial-calculations
@@ -0,0 +1 @@
+../../Task/Horizontal-sundial-calculations/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Iterated-digits-squaring b/Lang/Scala/Iterated-digits-squaring
new file mode 120000
index 0000000000..14d795856f
--- /dev/null
+++ b/Lang/Scala/Iterated-digits-squaring
@@ -0,0 +1 @@
+../../Task/Iterated-digits-squaring/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Keyboard-macros b/Lang/Scala/Keyboard-macros
new file mode 120000
index 0000000000..b8f0c0e2c7
--- /dev/null
+++ b/Lang/Scala/Keyboard-macros
@@ -0,0 +1 @@
+../../Task/Keyboard-macros/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Non-continuous-subsequences b/Lang/Scala/Non-continuous-subsequences
new file mode 120000
index 0000000000..5179798a7e
--- /dev/null
+++ b/Lang/Scala/Non-continuous-subsequences
@@ -0,0 +1 @@
+../../Task/Non-continuous-subsequences/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Parametrized-SQL-statement b/Lang/Scala/Parametrized-SQL-statement
new file mode 120000
index 0000000000..b6611d7464
--- /dev/null
+++ b/Lang/Scala/Parametrized-SQL-statement
@@ -0,0 +1 @@
+../../Task/Parametrized-SQL-statement/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Permutation-test b/Lang/Scala/Permutation-test
new file mode 120000
index 0000000000..39b37d1866
--- /dev/null
+++ b/Lang/Scala/Permutation-test
@@ -0,0 +1 @@
+../../Task/Permutation-test/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Permutations-Rank-of-a-permutation b/Lang/Scala/Permutations-Rank-of-a-permutation
new file mode 120000
index 0000000000..bf447d0086
--- /dev/null
+++ b/Lang/Scala/Permutations-Rank-of-a-permutation
@@ -0,0 +1 @@
+../../Task/Permutations-Rank-of-a-permutation/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Pinstripe-Display b/Lang/Scala/Pinstripe-Display
new file mode 120000
index 0000000000..79fda534ff
--- /dev/null
+++ b/Lang/Scala/Pinstripe-Display
@@ -0,0 +1 @@
+../../Task/Pinstripe-Display/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Polymorphism b/Lang/Scala/Polymorphism
new file mode 120000
index 0000000000..bbb8c1591b
--- /dev/null
+++ b/Lang/Scala/Polymorphism
@@ -0,0 +1 @@
+../../Task/Polymorphism/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Pythagorean-triples b/Lang/Scala/Pythagorean-triples
new file mode 120000
index 0000000000..78821a2509
--- /dev/null
+++ b/Lang/Scala/Pythagorean-triples
@@ -0,0 +1 @@
+../../Task/Pythagorean-triples/Scala
\ No newline at end of file
diff --git a/Lang/Scala/QR-decomposition b/Lang/Scala/QR-decomposition
new file mode 120000
index 0000000000..96e125a09e
--- /dev/null
+++ b/Lang/Scala/QR-decomposition
@@ -0,0 +1 @@
+../../Task/QR-decomposition/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Seven-sided-dice-from-five-sided-dice b/Lang/Scala/Seven-sided-dice-from-five-sided-dice
new file mode 120000
index 0000000000..d82ba56bc4
--- /dev/null
+++ b/Lang/Scala/Seven-sided-dice-from-five-sided-dice
@@ -0,0 +1 @@
+../../Task/Seven-sided-dice-from-five-sided-dice/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Sorting-algorithms-Cocktail-sort b/Lang/Scala/Sorting-algorithms-Cocktail-sort
new file mode 120000
index 0000000000..51cd486dc0
--- /dev/null
+++ b/Lang/Scala/Sorting-algorithms-Cocktail-sort
@@ -0,0 +1 @@
+../../Task/Sorting-algorithms-Cocktail-sort/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Sorting-algorithms-Gnome-sort b/Lang/Scala/Sorting-algorithms-Gnome-sort
new file mode 120000
index 0000000000..a2567c66fd
--- /dev/null
+++ b/Lang/Scala/Sorting-algorithms-Gnome-sort
@@ -0,0 +1 @@
+../../Task/Sorting-algorithms-Gnome-sort/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Sorting-algorithms-Radix-sort b/Lang/Scala/Sorting-algorithms-Radix-sort
new file mode 120000
index 0000000000..89689a00e6
--- /dev/null
+++ b/Lang/Scala/Sorting-algorithms-Radix-sort
@@ -0,0 +1 @@
+../../Task/Sorting-algorithms-Radix-sort/Scala
\ No newline at end of file
diff --git a/Lang/Scala/Text-processing-Max-licenses-in-use b/Lang/Scala/Text-processing-Max-licenses-in-use
new file mode 120000
index 0000000000..02f3f00dd0
--- /dev/null
+++ b/Lang/Scala/Text-processing-Max-licenses-in-use
@@ -0,0 +1 @@
+../../Task/Text-processing-Max-licenses-in-use/Scala
\ No newline at end of file
diff --git a/Lang/Scala/World-Cup-group-stage b/Lang/Scala/World-Cup-group-stage
new file mode 120000
index 0000000000..5857d00032
--- /dev/null
+++ b/Lang/Scala/World-Cup-group-stage
@@ -0,0 +1 @@
+../../Task/World-Cup-group-stage/Scala
\ No newline at end of file
diff --git a/Lang/Sed/Comma-quibbling b/Lang/Sed/Comma-quibbling
new file mode 120000
index 0000000000..84c0bf9737
--- /dev/null
+++ b/Lang/Sed/Comma-quibbling
@@ -0,0 +1 @@
+../../Task/Comma-quibbling/Sed
\ No newline at end of file
diff --git a/Lang/Shen/Luhn-test-of-credit-card-numbers b/Lang/Shen/Luhn-test-of-credit-card-numbers
new file mode 120000
index 0000000000..cb9f49ea24
--- /dev/null
+++ b/Lang/Shen/Luhn-test-of-credit-card-numbers
@@ -0,0 +1 @@
+../../Task/Luhn-test-of-credit-card-numbers/Shen
\ No newline at end of file
diff --git a/Lang/Swift/Averages-Mode b/Lang/Swift/Averages-Mode
new file mode 120000
index 0000000000..52c21b9b3e
--- /dev/null
+++ b/Lang/Swift/Averages-Mode
@@ -0,0 +1 @@
+../../Task/Averages-Mode/Swift
\ No newline at end of file
diff --git a/Lang/Swift/Catalan-numbers b/Lang/Swift/Catalan-numbers
new file mode 120000
index 0000000000..729bd93156
--- /dev/null
+++ b/Lang/Swift/Catalan-numbers
@@ -0,0 +1 @@
+../../Task/Catalan-numbers/Swift
\ No newline at end of file
diff --git a/Lang/Swift/Entropy b/Lang/Swift/Entropy
new file mode 120000
index 0000000000..8e0a6b8538
--- /dev/null
+++ b/Lang/Swift/Entropy
@@ -0,0 +1 @@
+../../Task/Entropy/Swift
\ No newline at end of file
diff --git a/Lang/Swift/Safe-addition b/Lang/Swift/Safe-addition
new file mode 120000
index 0000000000..1f4660a0eb
--- /dev/null
+++ b/Lang/Swift/Safe-addition
@@ -0,0 +1 @@
+../../Task/Safe-addition/Swift
\ No newline at end of file
diff --git a/Lang/TI-83-BASIC/Inverted-syntax b/Lang/TI-83-BASIC/Inverted-syntax
new file mode 120000
index 0000000000..0f3d0ed8d1
--- /dev/null
+++ b/Lang/TI-83-BASIC/Inverted-syntax
@@ -0,0 +1 @@
+../../Task/Inverted-syntax/TI-83-BASIC
\ No newline at end of file
diff --git a/Lang/Transact-SQL/Repeat-a-string b/Lang/Transact-SQL/Repeat-a-string
new file mode 120000
index 0000000000..948f753387
--- /dev/null
+++ b/Lang/Transact-SQL/Repeat-a-string
@@ -0,0 +1 @@
+../../Task/Repeat-a-string/Transact-SQL
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/100-doors b/Lang/VAX-Assembly/100-doors
new file mode 120000
index 0000000000..a2dd20893f
--- /dev/null
+++ b/Lang/VAX-Assembly/100-doors
@@ -0,0 +1 @@
+../../Task/100-doors/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/CRC-32 b/Lang/VAX-Assembly/CRC-32
new file mode 120000
index 0000000000..0a8ba9dd4d
--- /dev/null
+++ b/Lang/VAX-Assembly/CRC-32
@@ -0,0 +1 @@
+../../Task/CRC-32/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Delete-a-file b/Lang/VAX-Assembly/Delete-a-file
new file mode 120000
index 0000000000..2bbb1ed7e4
--- /dev/null
+++ b/Lang/VAX-Assembly/Delete-a-file
@@ -0,0 +1 @@
+../../Task/Delete-a-file/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Detect-division-by-zero b/Lang/VAX-Assembly/Detect-division-by-zero
new file mode 120000
index 0000000000..f1eea2a754
--- /dev/null
+++ b/Lang/VAX-Assembly/Detect-division-by-zero
@@ -0,0 +1 @@
+../../Task/Detect-division-by-zero/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Empty-program b/Lang/VAX-Assembly/Empty-program
new file mode 120000
index 0000000000..190a5c6fe8
--- /dev/null
+++ b/Lang/VAX-Assembly/Empty-program
@@ -0,0 +1 @@
+../../Task/Empty-program/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Empty-string b/Lang/VAX-Assembly/Empty-string
new file mode 120000
index 0000000000..9c355b241a
--- /dev/null
+++ b/Lang/VAX-Assembly/Empty-string
@@ -0,0 +1 @@
+../../Task/Empty-string/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Fibonacci-sequence b/Lang/VAX-Assembly/Fibonacci-sequence
new file mode 120000
index 0000000000..c58fdcd042
--- /dev/null
+++ b/Lang/VAX-Assembly/Fibonacci-sequence
@@ -0,0 +1 @@
+../../Task/Fibonacci-sequence/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/FizzBuzz b/Lang/VAX-Assembly/FizzBuzz
new file mode 120000
index 0000000000..ac00a3403c
--- /dev/null
+++ b/Lang/VAX-Assembly/FizzBuzz
@@ -0,0 +1 @@
+../../Task/FizzBuzz/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Hello-world-Text b/Lang/VAX-Assembly/Hello-world-Text
new file mode 120000
index 0000000000..fb60e404d4
--- /dev/null
+++ b/Lang/VAX-Assembly/Hello-world-Text
@@ -0,0 +1 @@
+../../Task/Hello-world-Text/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Loops-For-with-a-specified-step b/Lang/VAX-Assembly/Loops-For-with-a-specified-step
new file mode 120000
index 0000000000..1fd30b94c2
--- /dev/null
+++ b/Lang/VAX-Assembly/Loops-For-with-a-specified-step
@@ -0,0 +1 @@
+../../Task/Loops-For-with-a-specified-step/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Loops-Infinite b/Lang/VAX-Assembly/Loops-Infinite
new file mode 120000
index 0000000000..af28e94776
--- /dev/null
+++ b/Lang/VAX-Assembly/Loops-Infinite
@@ -0,0 +1 @@
+../../Task/Loops-Infinite/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VAX-Assembly/Sieve-of-Eratosthenes b/Lang/VAX-Assembly/Sieve-of-Eratosthenes
new file mode 120000
index 0000000000..ece7741700
--- /dev/null
+++ b/Lang/VAX-Assembly/Sieve-of-Eratosthenes
@@ -0,0 +1 @@
+../../Task/Sieve-of-Eratosthenes/VAX-Assembly
\ No newline at end of file
diff --git a/Lang/VBA/Aliquot-sequence-classifications b/Lang/VBA/Aliquot-sequence-classifications
new file mode 120000
index 0000000000..0a7b097b2c
--- /dev/null
+++ b/Lang/VBA/Aliquot-sequence-classifications
@@ -0,0 +1 @@
+../../Task/Aliquot-sequence-classifications/VBA
\ No newline at end of file
diff --git a/Lang/VBA/Formatted-numeric-output b/Lang/VBA/Formatted-numeric-output
new file mode 120000
index 0000000000..fd80b42d80
--- /dev/null
+++ b/Lang/VBA/Formatted-numeric-output
@@ -0,0 +1 @@
+../../Task/Formatted-numeric-output/VBA
\ No newline at end of file
diff --git a/Lang/VBA/Greatest-element-of-a-list b/Lang/VBA/Greatest-element-of-a-list
new file mode 120000
index 0000000000..2c93b24188
--- /dev/null
+++ b/Lang/VBA/Greatest-element-of-a-list
@@ -0,0 +1 @@
+../../Task/Greatest-element-of-a-list/VBA
\ No newline at end of file
diff --git a/Lang/VBA/Harshad-or-Niven-series b/Lang/VBA/Harshad-or-Niven-series
new file mode 120000
index 0000000000..1d1f74c61f
--- /dev/null
+++ b/Lang/VBA/Harshad-or-Niven-series
@@ -0,0 +1 @@
+../../Task/Harshad-or-Niven-series/VBA
\ No newline at end of file
diff --git a/Lang/VBScript/Draw-a-cuboid b/Lang/VBScript/Draw-a-cuboid
new file mode 120000
index 0000000000..89c706445d
--- /dev/null
+++ b/Lang/VBScript/Draw-a-cuboid
@@ -0,0 +1 @@
+../../Task/Draw-a-cuboid/VBScript
\ No newline at end of file
diff --git a/Lang/VBScript/Draw-a-sphere b/Lang/VBScript/Draw-a-sphere
new file mode 120000
index 0000000000..badc7a19b8
--- /dev/null
+++ b/Lang/VBScript/Draw-a-sphere
@@ -0,0 +1 @@
+../../Task/Draw-a-sphere/VBScript
\ No newline at end of file
diff --git a/Lang/VBScript/Sorting-algorithms-Insertion-sort b/Lang/VBScript/Sorting-algorithms-Insertion-sort
new file mode 120000
index 0000000000..2a9a947a16
--- /dev/null
+++ b/Lang/VBScript/Sorting-algorithms-Insertion-sort
@@ -0,0 +1 @@
+../../Task/Sorting-algorithms-Insertion-sort/VBScript
\ No newline at end of file
diff --git a/Lang/Vala/GUI-component-interaction b/Lang/Vala/GUI-component-interaction
new file mode 120000
index 0000000000..039d85f999
--- /dev/null
+++ b/Lang/Vala/GUI-component-interaction
@@ -0,0 +1 @@
+../../Task/GUI-component-interaction/Vala
\ No newline at end of file
diff --git a/Lang/Vala/GUI-enabling-disabling-of-controls b/Lang/Vala/GUI-enabling-disabling-of-controls
new file mode 120000
index 0000000000..48a14fba26
--- /dev/null
+++ b/Lang/Vala/GUI-enabling-disabling-of-controls
@@ -0,0 +1 @@
+../../Task/GUI-enabling-disabling-of-controls/Vala
\ No newline at end of file
diff --git a/Lang/Visual-Basic-.NET/Munching-squares b/Lang/Visual-Basic-.NET/Munching-squares
new file mode 120000
index 0000000000..7f827487b8
--- /dev/null
+++ b/Lang/Visual-Basic-.NET/Munching-squares
@@ -0,0 +1 @@
+../../Task/Munching-squares/Visual-Basic-.NET
\ No newline at end of file
diff --git a/Task/100-doors/Astro/100-doors.astro b/Task/100-doors/Astro/100-doors.astro
index 1ef6705711..51b9960768 100644
--- a/Task/100-doors/Astro/100-doors.astro
+++ b/Task/100-doors/Astro/100-doors.astro
@@ -1,5 +1,7 @@
var doors = falses(100)
+
for a in 1..100: for b in a..a..100:
doors[b] = not doors[b]
+
for a in 1..100:
- print "Door $a is $((doors[a]) ? 'open.': 'closed.')"
+ print "Door $a is ${(doors[a]) ? 'open.': 'closed.'}"
diff --git a/Task/100-doors/C++/100-doors-4.cpp b/Task/100-doors/C++/100-doors-4.cpp
new file mode 100644
index 0000000000..a03bf3692a
--- /dev/null
+++ b/Task/100-doors/C++/100-doors-4.cpp
@@ -0,0 +1,125 @@
+#include // compiled with clang (tags/RELEASE_600/final)
+#include // or g++ (GCC) 7.3.1 20180406 -- from hare1039
+namespace functional_list // basic building block for template meta programming
+{
+struct NIL
+{
+ using head = NIL;
+ using tail = NIL;
+ friend std::ostream& operator << (std::ostream& os, NIL const) { return os; }
+};
+
+template
+struct list
+{
+ using head = H;
+ using tail = T;
+};
+
+template
+struct integer
+{
+ static constexpr int value = i;
+ friend std::ostream& operator << (std::ostream& os, integer const) { os << integer::value; return os;}
+};
+
+template constexpr
+auto at()
+{
+ if constexpr (nTH == 0)
+ return (typename L::head){};
+ else if constexpr (not std::is_same_v)
+ return at();
+ else
+ return NIL{};
+}
+template
+using at_t = decltype(at());
+
+template constexpr
+auto prepend() { return list{}; }
+
+template
+using prepend_t = decltype(prepend());
+
+template > constexpr
+auto gen_list()
+{
+ if constexpr (Size == 0)
+ return NIL{};
+ else
+ {
+ using next = decltype(gen_list());
+ return prepend();
+ }
+}
+template >
+using gen_list_t = decltype(gen_list());
+
+} namespace fl = functional_list;
+
+constexpr int door_amount = 101; // index from 1 to 100
+
+template constexpr
+auto construct_loop()
+{
+ using val_t = fl::at_t;
+ if constexpr (std::is_same_v)
+ return fl::NIL{};
+ else
+ {
+ constexpr int val = val_t::value;
+ using val_add_t = fl::integer;
+ using val_old_t = fl::integer;
+
+ if constexpr (current == door_amount)
+ {
+ if constexpr(current % moder == 0)
+ return fl::list{};
+ else
+ return fl::list{};
+ }
+ else
+ {
+ using sub_list = decltype(construct_loop());
+ if constexpr(current % moder == 0)
+ return fl::prepend();
+ else
+ return fl::prepend();
+ }
+ }
+}
+
+template constexpr
+auto construct()
+{
+ if constexpr (iteration == 1) // door index = 1
+ {
+ using l = fl::gen_list_t;
+ return construct_loop();
+ }
+ else
+ {
+ using prev_iter_list = decltype(construct());
+ return construct_loop();
+ }
+}
+
+template constexpr
+void show_ans()
+{
+ if constexpr (std::is_same_v)
+ return;
+ else
+ {
+ if constexpr (L::head::value % 2 == 1)
+ std::cout << "Door " << pos << " is opened.\n";
+ show_ans();
+ }
+}
+
+int main()
+{
+ using result = decltype(construct<100>());
+ show_ans();
+}
diff --git a/Task/100-doors/Elena/100-doors.elena b/Task/100-doors/Elena/100-doors.elena
index 24d125de68..1fd4bddfa8 100644
--- a/Task/100-doors/Elena/100-doors.elena
+++ b/Task/100-doors/Elena/100-doors.elena
@@ -1,7 +1,7 @@
import system'routines.
import extensions.
-public program =
+public program
[
var Doors := Array new:100; populate(:n)( false ).
@@ -19,4 +19,4 @@ public program =
].
console readChar.
-].
+]
diff --git a/Task/100-doors/Ruby/100-doors-1.rb b/Task/100-doors/Ruby/100-doors-1.rb
index 6bd684abd4..cd56f1ac0a 100644
--- a/Task/100-doors/Ruby/100-doors-1.rb
+++ b/Task/100-doors/Ruby/100-doors-1.rb
@@ -1,40 +1,10 @@
-class Door
- attr_reader :state
-
- def initialize
- @state = :closed
- end
-
- def close
- @state = :closed
- end
-
- def open
- @state = :open
- end
-
- def closed?
- @state == :closed
- end
-
- def open?
- @state == :open
- end
-
- def toggle
- if closed? then open else close end
- end
-
- def to_s
- @state.to_s
- end
-end
-
-doors = Array.new(100) { Door.new }
-1.upto(100) do |multiplier|
- doors.each_with_index do |door, i|
- door.toggle if (i + 1) % multiplier == 0
- end
-end
-
-doors.each_with_index { |door, i| puts "Door #{i+1} is #{door}." }
+doors = Array.new(101,0)
+print "Open doors "
+(1..100).step(){ |i|
+(i..100).step(i) { |d|
+ doors[d] = doors[d]^= 1
+ if i == d and doors[d] == 1 then
+ print "#{i} "
+ end
+ }
+}
diff --git a/Task/100-doors/Ruby/100-doors-2.rb b/Task/100-doors/Ruby/100-doors-2.rb
index 6376d1cd8d..6bd684abd4 100644
--- a/Task/100-doors/Ruby/100-doors-2.rb
+++ b/Task/100-doors/Ruby/100-doors-2.rb
@@ -1,18 +1,40 @@
-n = 100
-Open = "open"
-Closed = "closed"
-def Open.toggle
- Closed
-end
-def Closed.toggle
- Open
-end
-doors = [Closed] * (n + 1)
-for mul in 1..n
- for x in (mul..n).step(mul)
- doors[x] = doors[x].toggle
+class Door
+ attr_reader :state
+
+ def initialize
+ @state = :closed
+ end
+
+ def close
+ @state = :closed
+ end
+
+ def open
+ @state = :open
+ end
+
+ def closed?
+ @state == :closed
+ end
+
+ def open?
+ @state == :open
+ end
+
+ def toggle
+ if closed? then open else close end
+ end
+
+ def to_s
+ @state.to_s
end
end
-doors.each_with_index do |b, i|
- puts "Door #{i} is #{b}" if i > 0
+
+doors = Array.new(100) { Door.new }
+1.upto(100) do |multiplier|
+ doors.each_with_index do |door, i|
+ door.toggle if (i + 1) % multiplier == 0
+ end
end
+
+doors.each_with_index { |door, i| puts "Door #{i+1} is #{door}." }
diff --git a/Task/100-doors/Ruby/100-doors-3.rb b/Task/100-doors/Ruby/100-doors-3.rb
index 5a572783e7..6376d1cd8d 100644
--- a/Task/100-doors/Ruby/100-doors-3.rb
+++ b/Task/100-doors/Ruby/100-doors-3.rb
@@ -1,4 +1,18 @@
n = 100
-(1..n).each do |i|
- puts "Door #{i} is #{i**0.5 == (i**0.5).round ? "open" : "closed"}"
+Open = "open"
+Closed = "closed"
+def Open.toggle
+ Closed
+end
+def Closed.toggle
+ Open
+end
+doors = [Closed] * (n + 1)
+for mul in 1..n
+ for x in (mul..n).step(mul)
+ doors[x] = doors[x].toggle
+ end
+end
+doors.each_with_index do |b, i|
+ puts "Door #{i} is #{b}" if i > 0
end
diff --git a/Task/100-doors/Ruby/100-doors-4.rb b/Task/100-doors/Ruby/100-doors-4.rb
index 98bc59f7f1..5a572783e7 100644
--- a/Task/100-doors/Ruby/100-doors-4.rb
+++ b/Task/100-doors/Ruby/100-doors-4.rb
@@ -1,7 +1,4 @@
-doors = [false] * 100
-100.times do |i|
- (i ... doors.length).step(i + 1) do |j|
- doors[j] = !doors[j]
- end
+n = 100
+(1..n).each do |i|
+ puts "Door #{i} is #{i**0.5 == (i**0.5).round ? "open" : "closed"}"
end
-puts doors.map.with_index(1){|d,i| "Door #{i} is #{d ? 'open' : 'closed'}."}
diff --git a/Task/100-doors/Ruby/100-doors-5.rb b/Task/100-doors/Ruby/100-doors-5.rb
new file mode 100644
index 0000000000..98bc59f7f1
--- /dev/null
+++ b/Task/100-doors/Ruby/100-doors-5.rb
@@ -0,0 +1,7 @@
+doors = [false] * 100
+100.times do |i|
+ (i ... doors.length).step(i + 1) do |j|
+ doors[j] = !doors[j]
+ end
+end
+puts doors.map.with_index(1){|d,i| "Door #{i} is #{d ? 'open' : 'closed'}."}
diff --git a/Task/100-doors/VAX-Assembly/100-doors.vax b/Task/100-doors/VAX-Assembly/100-doors.vax
new file mode 100644
index 0000000000..5bccdce977
--- /dev/null
+++ b/Task/100-doors/VAX-Assembly/100-doors.vax
@@ -0,0 +1,28 @@
+ 00000064 0000 1 n = 100
+ 0000 0000 2 .entry doors, ^m<>
+ 26'AF 9F 0002 3 pushab b^arr ; offset signed byte
+ 50 64 8F 9A 0005 4 movzbl #n, r0
+ 50 DD 0009 5 pushl r0 ; (sp) -> .ascid arr
+ 000B 6 10$:
+ 51 50 D0 000B 7 movl r0, r1 ; step = start index
+ 000E 8 20$:
+ 25'AF41 01 8C 000E 9 xorb2 #^a"0" \^a"1", b^arr-1[r1] ; \ xor toggle "1"<->"0"
+ FFF5 51 50 6E F1 0013 10 acbl (sp), r0, r1, 20$ ; limit, step, index
+ EF 50 F5 0019 11 sobgtr r0, 10$ ; n..1
+ 001C 12
+ 5E DD 001C 13 pushl sp ; descriptor by reference
+ 00000000'GF 01 FB 001E 14 calls #1, g^lib$put_output ; show result
+ 04 0025 15 ret
+ 0026 16
+30'30'30'30'30'30'30'30'30'30'30'30' 0026 17 arr: .byte ^a"0"[n]
+30'30'30'30'30'30'30'30'30'30'30'30' 0032
+30'30'30'30'30'30'30'30'30'30'30'30' 003E
+30'30'30'30'30'30'30'30'30'30'30'30' 004A
+30'30'30'30'30'30'30'30'30'30'30'30' 0056
+30'30'30'30'30'30'30'30'30'30'30'30' 0062
+30'30'30'30'30'30'30'30'30'30'30'30' 006E
+30'30'30'30'30'30'30'30'30'30'30'30' 007A
+ 30'30'30'30' 0086
+ 008A 18 .end doors
+$ run doors
+1001000010000001000000001000000000010000000000001000000000000001000000000000000010000000000000000001
diff --git a/Task/24-game/Elena/24-game.elena b/Task/24-game/Elena/24-game.elena
index a02c7fb7ad..5a5fdc386f 100644
--- a/Task/24-game/Elena/24-game.elena
+++ b/Task/24-game/Elena/24-game.elena
@@ -167,9 +167,9 @@ extension gameOp
]
}
-public program =
+public program
[
var aGame := TwentyFourGame new; help.
while (aGame prompt; playRound(console readLine)) [].
-].
+]
diff --git a/Task/24-game/Ring/24-game.ring b/Task/24-game/Ring/24-game.ring
index a77bd070f6..d6ff95e921 100644
--- a/Task/24-game/Ring/24-game.ring
+++ b/Task/24-game/Ring/24-game.ring
@@ -1,7 +1,4 @@
# Project : 24 game
-# Date : 2018/02/21
-# Author : Gal Zsolt (~ CalmoSoft ~)
-# Email :
load "stdlib.ring"
digits = list(4)
diff --git a/Task/9-billion-names-of-God-the-integer/Erlang/9-billion-names-of-god-the-integer.erl b/Task/9-billion-names-of-God-the-integer/Erlang/9-billion-names-of-god-the-integer.erl
index 1280760e09..f5d9a0d553 100644
--- a/Task/9-billion-names-of-God-the-integer/Erlang/9-billion-names-of-god-the-integer.erl
+++ b/Task/9-billion-names-of-God-the-integer/Erlang/9-billion-names-of-god-the-integer.erl
@@ -1,29 +1,21 @@
--module(god_the_integer).
--export([example/0, names/1, print_pyramid/1]).
+-module(triangle).
+-export([start/1]).
+start(N)->
+ print(1,1,N).
+print(N,N,N)->
+1;
+print(A,B,N) when A>=B->
+ io:format("~p ",[formula(A,B)]),
+ print(A,B+1,N);
+print(A,B,N) when B>A->
+ io:format("~n"),
+ print(A+1,1,N).
-example() ->
- Names = names( 10 ),
- print_pyramid( Names ).
-
-names( N ) ->
- [names_row(X) || X <- lists:seq(1, N)].
-
-print_pyramid( Names ) ->
- Width = erlang:length( lists:last(Names) ),
- [print_pyramid_row(Width, X) || X <- Names].
-
-
-
-names_row( M ) ->
- [p(M, X) || X <- lists:seq(1, M)].
-
-p( N, K ) when K > N -> 0;
-p( N, N ) -> 1;
-p( _N, 0 ) -> 0;
-p( N, K ) ->
- p( N - 1, K - 1 ) + p( N - K, K ).
-
-print_pyramid_row( Width, Row ) ->
- io:fwrite( "~*s", [Width - erlang:length(Row), " "] ),
- [io:fwrite("~p ", [X]) || X <- Row],
- io:nl().
+formula(_,0)->
+ 0;
+formula(B,B)->
+ 1;
+formula(A,B) when B>A->
+ 0;
+formula(A1,B1)->
+ formula(A1-1,B1-1)+formula(A1-B1,B1).
diff --git a/Task/99-Bottles-of-Beer/Astro/99-bottles-of-beer.astro b/Task/99-Bottles-of-Beer/Astro/99-bottles-of-beer.astro
index 634e60e7ae..90aad36c81 100644
--- a/Task/99-Bottles-of-Beer/Astro/99-bottles-of-beer.astro
+++ b/Task/99-Bottles-of-Beer/Astro/99-bottles-of-beer.astro
@@ -3,10 +3,10 @@ fun bottles(n):
| 1 => "1 bottle"
| _ => "$n bottles"
-for n in !99..1:
+for n in 99..-1..1:
print """
- $(bottles n) of beer on the wall
- $(bottles n) of beer
+ ${bottles n} of beer on the wall
+ ${bottles n} of beer
Take one down, pass it around
- $(bottles n-1) of beer on the wall\n
+ ${bottles n-1} of beer on the wall\n
"""
diff --git a/Task/99-Bottles-of-Beer/C/99-bottles-of-beer-1.c b/Task/99-Bottles-of-Beer/C/99-bottles-of-beer-1.c
index 40042b3568..4749d04c7d 100644
--- a/Task/99-Bottles-of-Beer/C/99-bottles-of-beer-1.c
+++ b/Task/99-Bottles-of-Beer/C/99-bottles-of-beer-1.c
@@ -1,15 +1,28 @@
-#include
+/*
+ * 99 Bottles, C, KISS (i.e. keep it simple and straightforward) version
+ */
+
#include
int main(void)
{
- unsigned int bottles = 99;
- do
- {
- printf("%u bottles of beer on the wall\n", bottles);
- printf("%u bottles of beer\n", bottles);
- printf("Take one down, pass it around\n");
- printf("%u bottles of beer on the wall\n\n", --bottles);
- } while(bottles > 0);
- return EXIT_SUCCESS;
+ int n;
+
+ for( n = 99; n > 2; n-- )
+ printf(
+ "%d bottles of beer on the wall, %d bottles of beer.\n"
+ "Take one down and pass it around, %d bottles of beer on the wall.\n\n",
+ n, n, n - 1);
+
+ printf(
+ "2 bottles of beer on the wall, 2 bottles of beer.\n"
+ "Take one down and pass it around, 1 bottle of beer on the wall.\n\n"
+
+ "1 bottle of beer on the wall, 1 bottle of beer.\n"
+ "Take one down and pass it around, no more bottles of beer on the wall.\n\n"
+
+ "No more bottles of beer on the wall, no more bottles of beer.\n"
+ "Go to the store and buy some more, 99 bottles of beer on the wall.\n");
+
+ return 0;
}
diff --git a/Task/99-Bottles-of-Beer/Elena/99-bottles-of-beer.elena b/Task/99-Bottles-of-Beer/Elena/99-bottles-of-beer.elena
index cdd9d6bb39..db355327c0 100644
--- a/Task/99-Bottles-of-Beer/Elena/99-bottles-of-beer.elena
+++ b/Task/99-Bottles-of-Beer/Elena/99-bottles-of-beer.elena
@@ -27,9 +27,9 @@ extension bottleOp
].
}
-public program =
+public program
[
var bottles := 99.
bottles bottleEnumerator; forEach:printingLn.
-].
+]
diff --git a/Task/99-Bottles-of-Beer/Emacs-Lisp/99-bottles-of-beer.l b/Task/99-Bottles-of-Beer/Emacs-Lisp/99-bottles-of-beer.l
new file mode 100644
index 0000000000..a357c2d00b
--- /dev/null
+++ b/Task/99-Bottles-of-Beer/Emacs-Lisp/99-bottles-of-beer.l
@@ -0,0 +1,4 @@
+ (let ((i 99))
+ (while (> i 0)
+ (princ-list i " bottles of beer on the wall" "\n Take one down, pass it around")
+ (setq i (1- i))))
diff --git a/Task/99-Bottles-of-Beer/Forth/99-bottles-of-beer-2.fth b/Task/99-Bottles-of-Beer/Forth/99-bottles-of-beer-2.fth
index 36a3defd7c..b7f337961c 100644
--- a/Task/99-Bottles-of-Beer/Forth/99-bottles-of-beer-2.fth
+++ b/Task/99-Bottles-of-Beer/Forth/99-bottles-of-beer-2.fth
@@ -1,36 +1,35 @@
-: bottles ( n -- ) \ select the right grammar based on 'n'
- dup
- case
- 1 of ." One more bottle " drop endof
- 0 of ." No more bottles " drop endof
- . ." bottles " \ default case
- endcase ;
+DECIMAL
+: BOTTLES ( n -- )
+ DUP
+ CASE
+ 1 OF ." One more bottle " DROP ENDOF
+ 0 OF ." NO MORE bottles " DROP ENDOF
+ . ." bottles " \ DEFAULT CASE
+ ENDCASE ;
-\ create punctuation with delay for artistic effect
-: , [char] , emit 100 ms ;
-: . [char] . emit 300 ms ;
+: , [CHAR] , EMIT SPACE 100 MS CR ;
+: . [CHAR] . EMIT 300 MS CR CR CR ;
-\ create the words to write the program
-: of ." of " ;
-: beer ." beer " ;
-: on ." on " ;
-: the ." the " ;
-: wall ." wall" ;
-: take ." take " ;
-: one ." one " ;
-: down ." down" ;
-: pass ." pass " ;
-: it ." it " ;
-: around ." around" ;
+: OF ." of " ; : BEER ." beer " ;
+: ON ." on " ; : THE ." the " ;
+: WALL ." wall" ; : TAKE ." take " ;
+: ONE ." one " ; : DOWN ." down, " ;
+: PASS ." pass " ; : IT ." it " ;
+: AROUND ." around" ;
-\ who said Forth is write only?
-: beers ( n -- ) \ USAGE: 99 beers
- 1 swap
- cr
- do
- I bottles of beer on the wall , cr
- I bottles of beer , cr
- take one down , pass it around , cr
- I 1- bottles of beer on the wall . cr
- cr
- -1 +loop ;
+: POPONE 1 SWAP CR ;
+: DRINK POSTPONE DO ; IMMEDIATE
+: ANOTHER S" -1 +LOOP" EVALUATE ; IMMEDIATE
+: HOWMANY S" I " EVALUATE ; IMMEDIATE
+: ONELESS S" I 1- " EVALUATE ; IMMEDIATE
+: HANGOVER ." :-(" CR QUIT ;
+
+: BEERS ( n -- ) \ Usage: 99 BEERS
+ POPONE
+ DRINK
+ HOWMANY BOTTLES OF BEER ON THE WALL ,
+ HOWMANY BOTTLES OF BEER ,
+ TAKE ONE DOWN PASS IT AROUND ,
+ ONELESS BOTTLES OF BEER ON THE WALL .
+ ANOTHER
+ HANGOVER ;
diff --git a/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-1.py b/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-1.py
new file mode 100644
index 0000000000..5050e6e77d
--- /dev/null
+++ b/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-1.py
@@ -0,0 +1,28 @@
+"""Pythonic 99 beer song (readability counts)."""
+
+regular_verse = '''\
+{n} bottles of beer on the wall, {n} bottles of beer
+Take one down and pass it around, {n_minus_1} bottles of beer on the wall.
+
+'''
+
+ending_verses = '''\
+2 bottles of beer on the wall, 2 bottles of beer.
+Take one down and pass it around, 1 bottle of beer on the wall.
+
+1 bottle of beer on the wall, 1 bottle of beer.
+Take one down and pass it around, no more bottles of beer on the wall.
+
+No more bottles of beer on the wall, no more bottles of beer.
+Go to the store and buy some more, 99 bottles of beer on the wall.
+
+'''
+
+# @todo: It is possible to refactor the code to avoid n-1 in the code,
+# notice that the last line of any verse and the first line of the next
+# verse share the same number of bottles. Nevertheless the code
+# would be less readliable.
+
+for n in range(99, 2, -1):
+ print(regular_verse.format(n=n, n_minus_1=n - 1))
+print(ending_verses)
diff --git a/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-2.py b/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-2.py
new file mode 100644
index 0000000000..a5518fdf9b
--- /dev/null
+++ b/Task/99-Bottles-of-Beer/Python/99-bottles-of-beer-2.py
@@ -0,0 +1,26 @@
+"""Pythonic 99 beer song (readability counts)."""
+
+first = '''\
+99 bottles of beer on the wall, 99 bottles of beer
+'''
+
+middle = '''\
+Take one down and pass it around, {n} bottles of beer on the wall.
+
+{n} bottles of beer on the wall, {n} bottles of beer
+'''
+
+last = '''\
+Take one down and pass it around, 1 bottle of beer on the wall.
+
+1 bottle of beer on the wall, 1 bottle of beer.
+Take one down and pass it around, no more bottles of beer on the wall.
+
+No more bottles of beer on the wall, no more bottles of beer.
+Go to the store and buy some more, 99 bottles of beer on the wall.
+'''
+
+print(first)
+for n in range(98, 1, -1):
+ print(middle.format(n=n))
+print(last)
diff --git a/Task/99-Bottles-of-Beer/REBOL/99-bottles-of-beer-1.rebol b/Task/99-Bottles-of-Beer/REBOL/99-bottles-of-beer-1.rebol
index d2825dbf2c..cb2d53ca48 100644
--- a/Task/99-Bottles-of-Beer/REBOL/99-bottles-of-beer-1.rebol
+++ b/Task/99-Bottles-of-Beer/REBOL/99-bottles-of-beer-1.rebol
@@ -1,7 +1,5 @@
rebol [
Title: "99 Bottles of Beer"
- Author: oofoe
- Date: 2009-12-11
URL: http://rosettacode.org/wiki/99_Bottles_of_Beer
]
diff --git a/Task/A+B/Elena/a+b-1.elena b/Task/A+B/Elena/a+b-1.elena
index 96e82bd3dd..aab3069454 100644
--- a/Task/A+B/Elena/a+b-1.elena
+++ b/Task/A+B/Elena/a+b-1.elena
@@ -1,9 +1,9 @@
import extensions.
-public program =
+public program
[
var A := Integer new.
var B := Integer new.
- console readLine(A,B); writeLine(A + B).
-].
+ console readLine(A,B); writeLine(A + B)
+]
diff --git a/Task/A+B/Elena/a+b-2.elena b/Task/A+B/Elena/a+b-2.elena
index 1f1ab29612..4b158dd2e7 100644
--- a/Task/A+B/Elena/a+b-2.elena
+++ b/Task/A+B/Elena/a+b-2.elena
@@ -1,10 +1,10 @@
import system'routines.
import extensions.
-public program =
+public program
[
console writeLine(console readLine;
split;
selectBy(%"convertorOp.toInt[0]");
- summarize).
-].
+ summarize)
+]
diff --git a/Task/A+B/Swift/a+b.swift b/Task/A+B/Swift/a+b-1.swift
similarity index 100%
rename from Task/A+B/Swift/a+b.swift
rename to Task/A+B/Swift/a+b-1.swift
diff --git a/Task/A+B/Swift/a+b-2.swift b/Task/A+B/Swift/a+b-2.swift
new file mode 100644
index 0000000000..a297f9bf15
--- /dev/null
+++ b/Task/A+B/Swift/a+b-2.swift
@@ -0,0 +1,14 @@
+import Foundation
+
+let input = FileHandle.standardInput
+
+let data = input.availableData
+let str = String(data: data, encoding: .utf8)!
+let nums = str.split(separator: " ")
+ .map { String($0.unicodeScalars
+ .filter { CharacterSet.decimalDigits.contains($0) }) }
+
+let a = Int(nums[0])!
+let b = Int(nums[1])!
+
+print(" \(a + b)")
diff --git a/Task/ABC-Problem/Astro/abc-problem.astro b/Task/ABC-Problem/Astro/abc-problem.astro
index 7420d9f430..93196c9d5e 100644
--- a/Task/ABC-Problem/Astro/abc-problem.astro
+++ b/Task/ABC-Problem/Astro/abc-problem.astro
@@ -1,7 +1,8 @@
fun abc(str, list):
- if list.isEmpty: return true
- for i in indices(list) where s[!1] in list[i]:
- return abc(str[:!2], remove(val list, i))
+ if list.isempty:
+ return true
+ for i in indices(list) where s[end] in list[i]:
+ return abc(str[end-1:], remove(val list, i))
false
let test = ["A", "BARK","BOOK","TREAT","COMMON","SQUAD","CONFUSE"]
@@ -9,4 +10,4 @@ let list = ["BO","XK","DQ","CP","NA","GT","RE","TG","QD","FS",
"JW","HU","VI","AN","OB","ER","FS","LY","PC","ZM"]
for str in test:
- print "$:>8(s) | $(abc(s, list))"
+ print "$|>8|{s} | ${abc(s, list)}"
diff --git a/Task/ABC-Problem/Elena/abc-problem.elena b/Task/ABC-Problem/Elena/abc-problem.elena
index b6773ec09c..aea653d4db 100644
--- a/Task/ABC-Problem/Elena/abc-problem.elena
+++ b/Task/ABC-Problem/Elena/abc-problem.elena
@@ -21,7 +21,7 @@ extension op
]
}
-public program =
+public program
[
var blocks := ("BO", "XK", "DQ", "CP", "NA",
"GT", "RE", "TG", "QD", "FS",
@@ -33,5 +33,5 @@ public program =
words forEach(:word)
[
console printLine("can make '",word,"' : ",word canMakeWordFrom:blocks).
- ].
-].
+ ]
+]
diff --git a/Task/AKS-test-for-primes/Elena/aks-test-for-primes.elena b/Task/AKS-test-for-primes/Elena/aks-test-for-primes.elena
index 1e3297daff..7227c0ffac 100644
--- a/Task/AKS-test-for-primes/Elena/aks-test-for-primes.elena
+++ b/Task/AKS-test-for-primes/Elena/aks-test-for-primes.elena
@@ -59,7 +59,7 @@ singleton AksTest
]
}
-public program =
+public program
[
0 till:10 do(:n)
[
@@ -78,5 +78,5 @@ public program =
]
].
- console printLine; readLine
-].
+ console printLine; readChar
+]
diff --git a/Task/Abstract-type/REBOL/abstract-type.rebol b/Task/Abstract-type/REBOL/abstract-type.rebol
index c5dabc81ea..353bba0dd1 100644
--- a/Task/Abstract-type/REBOL/abstract-type.rebol
+++ b/Task/Abstract-type/REBOL/abstract-type.rebol
@@ -1,7 +1,5 @@
REBOL [
Title: "Abstract Type"
- Author: oofoe
- Date: 2009-12-05
URL: http://rosettacode.org/wiki/Abstract_type
]
diff --git a/Task/Abundant,-deficient-and-perfect-number-classifications/Befunge/abundant,-deficient-and-perfect-number-classifications.bf b/Task/Abundant,-deficient-and-perfect-number-classifications/Befunge/abundant,-deficient-and-perfect-number-classifications.bf
new file mode 100644
index 0000000000..3162314e3a
--- /dev/null
+++ b/Task/Abundant,-deficient-and-perfect-number-classifications/Befunge/abundant,-deficient-and-perfect-number-classifications.bf
@@ -0,0 +1,4 @@
+p0"2":*8*>::2/\:2/\28*:*:**+>::28*:*:*/\28*:*:*%%#v_\:28*:*:*%v>00p:0`\0\`-1v
+++\1-:1`#^_$:28*:*:*/\28*vv_^#<<*:*:**\2-!#+
+v"There are "0\g00+1%*:*:<>28*:*:*/\28*:*:*/:0\`28*:*:**+-:!00g^^82!:g01\p01<
+>:#,_\." ,tneicifed">:#,_\." dna ,tcefrep">:#,_\.55+".srebmun tnadnuba">:#,_@
diff --git a/Task/Abundant,-deficient-and-perfect-number-classifications/Elena/abundant,-deficient-and-perfect-number-classifications.elena b/Task/Abundant,-deficient-and-perfect-number-classifications/Elena/abundant,-deficient-and-perfect-number-classifications.elena
index 4fa19b9994..2eb688c5b3 100644
--- a/Task/Abundant,-deficient-and-perfect-number-classifications/Elena/abundant,-deficient-and-perfect-number-classifications.elena
+++ b/Task/Abundant,-deficient-and-perfect-number-classifications/Elena/abundant,-deficient-and-perfect-number-classifications.elena
@@ -31,11 +31,11 @@ classifyNumbers =
]
}.
-public program =
+public program
[
int abundant := 0.
int deficient := 0.
int perfect := 0.
classifyNumbers eval(20000, &abundant, &deficient, &perfect).
- console printLine("Abundant: ",abundant,", Deficient: ",deficient,", Perfect: ",perfect).
-].
+ console printLine("Abundant: ",abundant,", Deficient: ",deficient,", Perfect: ",perfect)
+]
diff --git a/Task/Accumulator-factory/8th/accumulator-factory.8th b/Task/Accumulator-factory/8th/accumulator-factory.8th
new file mode 100644
index 0000000000..4f0e7e202c
--- /dev/null
+++ b/Task/Accumulator-factory/8th/accumulator-factory.8th
@@ -0,0 +1,25 @@
+\ RossetaCode 'accumulator factory'
+
+\ The 'accumulate' word stores the accumulated value in an array, because arrays
+\ are mutable:
+: accumulate \ n [m] -- n+m \ [m] -> [n+m]
+ a:pop rot n:+
+ tuck a:push swap ;
+
+\ To comply with the rules, this takes a number and wraps it in an array, and
+\ then curries it. Since 'curry:' is "immediate", we need to postpone its
+\ action using 'p:.
+
+: make-accumulator
+ 1 a:close
+ ' accumulate
+ p: curry: ;
+
+\ We 'curry' the initial value along with 'accumulate' to create
+\ a new word, '+10', which will give us the accumulated values
+10 make-accumulator +10
+
+\ This loop will add 1, then 2, then 3, to the accumulator, which prints the
+\ results 11,13,16:
+( +10 . cr ) 1 3 loop
+bye
diff --git a/Task/Accumulator-factory/Astro/accumulator-factory.astro b/Task/Accumulator-factory/Astro/accumulator-factory.astro
index d3658b04cb..64f5488404 100644
--- a/Task/Accumulator-factory/Astro/accumulator-factory.astro
+++ b/Task/Accumulator-factory/Astro/accumulator-factory.astro
@@ -1,5 +1,7 @@
-fun accumulator(sum) = |n| => sum += n
+fun accumulator(sum): n => sum += n
+
let f = accumulator(5.)
+
print f(5) # 10.0
print f(10) # 20.0
print f(2.4) # 22.4
diff --git a/Task/Accumulator-factory/Elena/accumulator-factory.elena b/Task/Accumulator-factory/Elena/accumulator-factory.elena
index 8a2bba9eb0..a44ae1f558 100644
--- a/Task/Accumulator-factory/Elena/accumulator-factory.elena
+++ b/Task/Accumulator-factory/Elena/accumulator-factory.elena
@@ -1,10 +1,10 @@
-function =
- (:acc)((:n)(acc append:n)).
+function(acc)
+ = (:n)(acc append:n).
-accumulator =
- (:n)(function(Variable new(n))).
+accumulator(n)
+ = function(Variable new(n)).
-public program =
+public program
[
var x := accumulator(1).
@@ -12,5 +12,5 @@ public program =
var y := accumulator(3).
- console write(x(2.3r)).
-].
+ console write(x(2.3r))
+]
diff --git a/Task/Accumulator-factory/Perl/accumulator-factory.pl b/Task/Accumulator-factory/Perl/accumulator-factory.pl
index b217520dc2..30d2c10823 100644
--- a/Task/Accumulator-factory/Perl/accumulator-factory.pl
+++ b/Task/Accumulator-factory/Perl/accumulator-factory.pl
@@ -5,5 +5,5 @@ sub accumulator {
my $x = accumulator(1);
$x->(5);
-print accumulator(3), "\n";
+accumulator(3);
print $x->(2.3), "\n";
diff --git a/Task/Ackermann-function/Elena/ackermann-function.elena b/Task/Ackermann-function/Elena/ackermann-function.elena
index 176b20b961..2d23faeec2 100644
--- a/Task/Ackermann-function/Elena/ackermann-function.elena
+++ b/Task/Ackermann-function/Elena/ackermann-function.elena
@@ -1,6 +1,6 @@
import extensions.
-ackermann = (:m:n)
+ackermann(m,n)
[
if((n < 0)||(m < 0))
[
@@ -14,9 +14,9 @@ ackermann = (:m:n)
0 [ ^ackermann(m - 1,1) ];
! [ ^ackermann(m - 1,ackermann(m,n-1)) ]
]
-].
+]
-public program =
+public program
[
0 to:3 do(:i)
[
@@ -26,5 +26,5 @@ public program =
]
].
- console readChar.
-].
+ console readChar
+]
diff --git a/Task/Ackermann-function/Go/ackermann-function-3.go b/Task/Ackermann-function/Go/ackermann-function-3.go
index dafdf5cea5..aeb84f1490 100644
--- a/Task/Ackermann-function/Go/ackermann-function-3.go
+++ b/Task/Ackermann-function/Go/ackermann-function-3.go
@@ -1,53 +1,90 @@
package main
import (
- "fmt"
- "math/big"
- "unsafe"
+ "fmt"
+ "math/big"
+ "math/bits" // Added in Go 1.9
)
var one = big.NewInt(1)
var two = big.NewInt(2)
var three = big.NewInt(3)
var eight = big.NewInt(8)
-var u uint
-var uBits = int(unsafe.Sizeof(u))*8 - 1
func Ackermann2(m, n *big.Int) *big.Int {
- if m.Cmp(three) <= 0 {
- switch m.Int64() {
- case 0:
- return new(big.Int).Add(n, one)
- case 1:
- return new(big.Int).Add(n, two)
- case 2:
- r := new(big.Int).Lsh(n, 1)
- return r.Add(r, three)
- case 3:
- if n.BitLen() > uBits {
- panic("way too big")
- }
- r := new(big.Int).Lsh(eight, uint(n.Int64()))
- return r.Sub(r, three)
- }
- }
- if n.BitLen() == 0 {
- return Ackermann2(new(big.Int).Sub(m, one), one)
- }
- return Ackermann2(new(big.Int).Sub(m, one),
- Ackermann2(m, new(big.Int).Sub(n, one)))
+ if m.Cmp(three) <= 0 {
+ switch m.Int64() {
+ case 0:
+ return new(big.Int).Add(n, one)
+ case 1:
+ return new(big.Int).Add(n, two)
+ case 2:
+ r := new(big.Int).Lsh(n, 1)
+ return r.Add(r, three)
+ case 3:
+ if nb := n.BitLen(); nb > bits.UintSize {
+ // n is too large to represent as a
+ // uint for use in the Lsh method.
+ panic(TooBigError(nb))
+
+ // If we tried to continue anyway, doing
+ // 8*2^n-3 as bellow, we'd use hundreds
+ // of megabytes and lots of CPU time
+ // without the Exp call even returning.
+ r := new(big.Int).Exp(two, n, nil)
+ r.Mul(eight, r)
+ return r.Sub(r, three)
+ }
+ r := new(big.Int).Lsh(eight, uint(n.Int64()))
+ return r.Sub(r, three)
+ }
+ }
+ if n.BitLen() == 0 {
+ return Ackermann2(new(big.Int).Sub(m, one), one)
+ }
+ return Ackermann2(new(big.Int).Sub(m, one),
+ Ackermann2(m, new(big.Int).Sub(n, one)))
+}
+
+type TooBigError int
+
+func (e TooBigError) Error() string {
+ return fmt.Sprintf("A(m,n) had n of %d bits; too large", int(e))
}
func main() {
- show(0, 0)
- show(1, 2)
- show(2, 4)
- show(3, 100)
- show(4, 1)
- show(4, 3)
+ show(0, 0)
+ show(1, 2)
+ show(2, 4)
+ show(3, 100)
+ show(3, 1e6)
+ show(4, 1)
+ show(4, 2)
+ show(4, 3)
}
func show(m, n int64) {
- fmt.Printf("A(%d, %d) = ", m, n)
- fmt.Println(Ackermann2(big.NewInt(m), big.NewInt(n)))
+ defer func() {
+ // Ackermann2 could/should have returned an error
+ // instead of a panic. But here's how to recover
+ // from the panic, and report "expected" errors.
+ if e := recover(); e != nil {
+ if err, ok := e.(TooBigError); ok {
+ fmt.Println("Error:", err)
+ } else {
+ panic(e)
+ }
+ }
+ }()
+
+ fmt.Printf("A(%d, %d) = ", m, n)
+ a := Ackermann2(big.NewInt(m), big.NewInt(n))
+ if a.BitLen() <= 256 {
+ fmt.Println(a)
+ } else {
+ s := a.String()
+ fmt.Printf("%d digits starting/ending with: %s...%s\n",
+ len(s), s[:20], s[len(s)-20:],
+ )
+ }
}
diff --git a/Task/Ackermann-function/NewLISP/ackermann-function.newlisp b/Task/Ackermann-function/NewLISP/ackermann-function.newlisp
new file mode 100644
index 0000000000..e3eb315dc6
--- /dev/null
+++ b/Task/Ackermann-function/NewLISP/ackermann-function.newlisp
@@ -0,0 +1,6 @@
+#! /usr/local/bin/newlisp
+
+(define (ackermann m n)
+ (cond ((zero? m) (inc n))
+ ((zero? n) (ackermann (dec m) 1))
+ (true (ackermann (- m 1) (ackermann m (dec n))))))
diff --git a/Task/Active-Directory-Search-for-a-user/Scala/active-directory-search-for-a-user.scala b/Task/Active-Directory-Search-for-a-user/Scala/active-directory-search-for-a-user.scala
new file mode 100644
index 0000000000..f3db265780
--- /dev/null
+++ b/Task/Active-Directory-Search-for-a-user/Scala/active-directory-search-for-a-user.scala
@@ -0,0 +1,36 @@
+import org.apache.directory.api.ldap.model.message.SearchScope
+import org.apache.directory.ldap.client.api.{LdapConnection, LdapNetworkConnection}
+
+object LdapSearchDemo extends App {
+
+ class LdapSearch {
+
+ def demonstrateSearch(): Unit = {
+
+ val conn = new LdapNetworkConnection("localhost", 11389)
+ try {
+ conn.bind("uid=admin,ou=system", "********")
+ search(conn, "*mil*")
+ conn.unBind()
+ } finally if (conn != null) conn.close()
+
+ }
+
+ private def search(connection: LdapConnection, uid: String): Unit = {
+ val baseDn = "ou=users,o=mojo"
+ val filter = "(&(objectClass=person)(&(uid=" + uid + ")))"
+ val scope = SearchScope.SUBTREE
+ val attributes = List("dn", "cn", "sn", "uid")
+ var ksearch = 0
+ val cursor = connection.search(baseDn, filter, scope, attributes: _*)
+ while (cursor.next) {
+ ksearch += 1
+ val entry = cursor.get
+ printf("Search entry %d = %s%n", ksearch, entry)
+ }
+ }
+ }
+
+ new LdapSearch().demonstrateSearch()
+
+}
diff --git a/Task/Add-a-variable-to-a-class-instance-at-runtime/Elena/add-a-variable-to-a-class-instance-at-runtime.elena b/Task/Add-a-variable-to-a-class-instance-at-runtime/Elena/add-a-variable-to-a-class-instance-at-runtime.elena
index d2355e7508..cd43de70fd 100644
--- a/Task/Add-a-variable-to-a-class-instance-at-runtime/Elena/add-a-variable-to-a-class-instance-at-runtime.elena
+++ b/Task/Add-a-variable-to-a-class-instance-at-runtime/Elena/add-a-variable-to-a-class-instance-at-runtime.elena
@@ -10,7 +10,7 @@ class Extender :: BaseExtender
]
}
-public program =
+public program
[
var anObject := 234.
@@ -21,5 +21,5 @@ public program =
console printLine(anObject,".foo=",anObject foo).
- console readChar.
-].
+ console readChar
+]
diff --git a/Task/Add-a-variable-to-a-class-instance-at-runtime/REBOL/add-a-variable-to-a-class-instance-at-runtime.rebol b/Task/Add-a-variable-to-a-class-instance-at-runtime/REBOL/add-a-variable-to-a-class-instance-at-runtime.rebol
index af63b13b99..33314fab90 100644
--- a/Task/Add-a-variable-to-a-class-instance-at-runtime/REBOL/add-a-variable-to-a-class-instance-at-runtime.rebol
+++ b/Task/Add-a-variable-to-a-class-instance-at-runtime/REBOL/add-a-variable-to-a-class-instance-at-runtime.rebol
@@ -1,7 +1,5 @@
REBOL [
Title: "Add Variables to Class at Runtime"
- Author: oofoe
- Date: 2009-12-04
URL: http://rosettacode.org/wiki/Adding_variables_to_a_class_instance_at_runtime
]
diff --git a/Task/Address-of-a-variable/Astro/address-of-a-variable.astro b/Task/Address-of-a-variable/Astro/address-of-a-variable.astro
index 56bfc0a4a5..3207ba694c 100644
--- a/Task/Address-of-a-variable/Astro/address-of-a-variable.astro
+++ b/Task/Address-of-a-variable/Astro/address-of-a-variable.astro
@@ -1,5 +1,7 @@
var num = 12
var pointer = ptr(num) # get pointer
+
print pointer # print address
-unsafe: # bad idea!
- pointer.addr = 0xFFFE # set the address
+
+@unsafe # bad idea!
+pointer.addr = 0xFFFE # set the address
diff --git a/Task/Align-columns/REBOL/align-columns.rebol b/Task/Align-columns/REBOL/align-columns.rebol
index 66225e00ca..ed5d84b741 100644
--- a/Task/Align-columns/REBOL/align-columns.rebol
+++ b/Task/Align-columns/REBOL/align-columns.rebol
@@ -1,7 +1,5 @@
REBOL [
Title: "Align Columns"
- Author: oofoe
- Date: 2010-09-29
URL: http://rosettacode.org/wiki/Align_columns
]
diff --git a/Task/Aliquot-sequence-classifications/00DESCRIPTION b/Task/Aliquot-sequence-classifications/00DESCRIPTION
index e9a534234a..cdcca6720c 100644
--- a/Task/Aliquot-sequence-classifications/00DESCRIPTION
+++ b/Task/Aliquot-sequence-classifications/00DESCRIPTION
@@ -12,7 +12,7 @@ being K and subsequent members being the sum of the [[Proper divisors]] of the p
:* K that have a sequence that eventually forms a periodic repetition of period >= 2 but of a number other than K, for example 562 which forms the sequence 562, 284, 220, 284, 220, ... such K are called '''cyclic'''.
: And finally:
-:* Some K form aliquot sequences that are not known to be either terminating or periodic. these K are to be called '''non-terminating'''. For the purposes of this task, K is to be classed as non-terminating if it has not been otherwise classed after generating '''16''' terms or if any term of the sequence is greater than 2**47 = 140,737,488,355,328.
+:* Some K form aliquot sequences that are not known to be either terminating or periodic; these K are to be called '''non-terminating'''. For the purposes of this task, K is to be classed as non-terminating if it has not been otherwise classed after generating '''16''' terms or if any term of the sequence is greater than 2**47 = 140,737,488,355,328.
;Task:
diff --git a/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-1.c b/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-1.c
index d4eedffef7..9754432257 100644
--- a/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-1.c
+++ b/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-1.c
@@ -1,5 +1,3 @@
-/*Abhishek Ghosh, 1st November 2017*/
-
#include
#include
#include
diff --git a/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-2.c b/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-2.c
index 8813dcf239..8f5d340156 100644
--- a/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-2.c
+++ b/Task/Aliquot-sequence-classifications/C/aliquot-sequence-classifications-2.c
@@ -1,5 +1,3 @@
-/*Abhishek Ghosh, 7th November 2017*/
-
#include
#include
#include
diff --git a/Task/Aliquot-sequence-classifications/Factor/aliquot-sequence-classifications.factor b/Task/Aliquot-sequence-classifications/Factor/aliquot-sequence-classifications.factor
new file mode 100644
index 0000000000..1388c92a9b
--- /dev/null
+++ b/Task/Aliquot-sequence-classifications/Factor/aliquot-sequence-classifications.factor
@@ -0,0 +1,54 @@
+USING: combinators combinators.short-circuit formatting kernel
+literals locals math math.functions math.primes.factors
+math.ranges namespaces pair-rocket sequences sets ;
+FROM: namespaces => set ;
+IN: rosetta-code.aliquot
+
+SYMBOL: terms
+CONSTANT: 2^47 $[ 2 47 ^ ]
+CONSTANT: test-cases {
+ 11 12 28 496 220 1184 12496 1264460 790
+ 909 562 1064 1488 15355717786080
+}
+
+: next-term ( n -- m ) dup divisors sum swap - ;
+
+: continue-aliquot? ( hs term -- hs term ? )
+ {
+ [ terms get 15 < ]
+ [ swap in? not ]
+ [ nip zero? not ]
+ [ nip 2^47 < ]
+ } 2&& ;
+
+: next-aliquot ( hs term -- hs next-term term )
+ [ swap [ adjoin ] keep ]
+ [ dup [ next-term ] dip ] bi terms inc ;
+
+: aliquot ( k -- seq )
+ 0 terms set HS{ } clone swap
+ [ continue-aliquot? ] [ next-aliquot ] produce
+ [ drop ] 2dip swap suffix ;
+
+: non-terminating? ( seq -- ? )
+ { [ length 15 > ] [ [ 2^47 > ] any? ] } 1|| ;
+
+:: classify ( seq -- classification-str )
+ {
+ [ seq non-terminating? ] => [ "non-terminating" ]
+ [ seq last zero? ] => [ "terminating" ]
+ [ seq length 2 = ] => [ "perfect" ]
+ [ seq length 3 = ] => [ "amicable" ]
+ [ seq first seq last = ] => [ "sociable" ]
+ [ seq 2 tail* first2 = ] => [ "aspiring" ]
+ [ "cyclic" ]
+ } cond ;
+
+: .classify ( k -- )
+ dup aliquot [ classify ] keep "%14u: %15s: %[%d, %]\n"
+ printf ;
+
+: main ( -- )
+ 10 [1,b] test-cases append [ .classify ] each ;
+
+MAIN: main
diff --git a/Task/Aliquot-sequence-classifications/Ring/aliquot-sequence-classifications.ring b/Task/Aliquot-sequence-classifications/Ring/aliquot-sequence-classifications.ring
index b145e50f8a..2425975c2d 100644
--- a/Task/Aliquot-sequence-classifications/Ring/aliquot-sequence-classifications.ring
+++ b/Task/Aliquot-sequence-classifications/Ring/aliquot-sequence-classifications.ring
@@ -1,7 +1,4 @@
# Project : Aliquot sequence classnifications
-# Date : 2017/11/16
-# Author : Gal Zsolt (~ CalmoSoft ~)
-# Email :
see "Rosetta Code - aliquot sequence classnifications" + nl
while true
diff --git a/Task/Aliquot-sequence-classifications/VBA/aliquot-sequence-classifications.vba b/Task/Aliquot-sequence-classifications/VBA/aliquot-sequence-classifications.vba
new file mode 100644
index 0000000000..6fcf47bdab
--- /dev/null
+++ b/Task/Aliquot-sequence-classifications/VBA/aliquot-sequence-classifications.vba
@@ -0,0 +1,66 @@
+Option Explicit
+
+Private Type Aliquot
+ Sequence() As Double
+ Classification As String
+End Type
+
+Sub Main()
+Dim result As Aliquot, i As Long, j As Double, temp As String
+'display the classification and sequences of the numbers one to ten inclusive
+ For j = 1 To 10
+ result = Aliq(j)
+ temp = vbNullString
+ For i = 0 To UBound(result.Sequence)
+ temp = temp & result.Sequence(i) & ", "
+ Next i
+ Debug.Print "Aliquot seq of " & j & " : " & result.Classification & " " & Left(temp, Len(temp) - 2)
+ Next j
+'show the classification and sequences of the following integers, in order:
+Dim a
+ '15 355 717 786 080 : impossible in VBA ==> out of memory
+ a = Array(11, 12, 28, 496, 220, 1184, 12496, 1264460, 790, 909, 562, 1064, 1488)
+ For j = LBound(a) To UBound(a)
+ result = Aliq(CDbl(a(j)))
+ temp = vbNullString
+ For i = 0 To UBound(result.Sequence)
+ temp = temp & result.Sequence(i) & ", "
+ Next i
+ Debug.Print "Aliquot seq of " & a(j) & " : " & result.Classification & " " & Left(temp, Len(temp) - 2)
+ Next
+End Sub
+
+Private Function Aliq(Nb As Double) As Aliquot
+Dim s() As Double, i As Long, temp, j As Long, cpt As Long
+ temp = Array("non-terminating", "Terminate", "Perfect", "Amicable", "Sociable", "Aspiring", "Cyclic")
+ ReDim s(0)
+ s(0) = Nb
+ For i = 1 To 15
+ cpt = cpt + 1
+ ReDim Preserve s(cpt)
+ s(i) = SumPDiv(s(i - 1))
+ If s(i) > 140737488355328# Then Exit For
+ If s(i) = 0 Then j = 1
+ If s(1) = s(0) Then j = 2
+ If s(i) = s(0) And i > 1 And i <> 2 Then j = 4
+ If s(i) = s(i - 1) And i > 1 Then j = 5
+ If i >= 2 Then
+ If s(2) = s(0) Then j = 3
+ If s(i) = s(i - 2) And i <> 2 Then j = 6
+ End If
+ If j > 0 Then Exit For
+ Next
+ Aliq.Classification = temp(j)
+ Aliq.Sequence = s
+End Function
+
+Private Function SumPDiv(n As Double) As Double
+'returns the sum of the Proper divisors of n
+Dim j As Long, t As Long
+ If n > 1 Then
+ For j = 1 To n \ 2
+ If n Mod j = 0 Then t = t + j
+ Next
+ End If
+ SumPDiv = t
+End Function
diff --git a/Task/Almost-prime/Maple/almost-prime.maple b/Task/Almost-prime/Maple/almost-prime.maple
new file mode 100644
index 0000000000..196bdcb30a
--- /dev/null
+++ b/Task/Almost-prime/Maple/almost-prime.maple
@@ -0,0 +1,16 @@
+AlmostPrimes:=proc(k, numvalues::posint:=10)
+ local aprimes, i, intfactors;
+ aprimes := Array([]);
+ i := 0;
+
+ do
+ i := i + 1;
+ intfactors := ifactors(i)[2];
+ intfactors := [seq(seq(intfactors[i][1], j=1..intfactors[i][2]),i = 1..numelems(intfactors))];
+ if numelems(intfactors) = k then
+ ArrayTools:-Append(aprimes,i);
+ end if;
+ until numelems(aprimes) = 10:
+ aprimes;
+end proc:
+;
diff --git a/Task/Amb/Elena/amb.elena b/Task/Amb/Elena/amb.elena
index 849f4f087f..3497ddca76 100644
--- a/Task/Amb/Elena/amb.elena
+++ b/Task/Amb/Elena/amb.elena
@@ -2,46 +2,45 @@ import system'routines.
import extensions.
import extensions'routines.
-joinable = (:aFormer:aLater)(aFormer[aFormer length - 1] == aLater[0]).
+joinable(former,later) = (former[former length - 1] == later[0]).
dispatcher =
{
- eval(object anArray, Func2 aFunction)
+ eval(object a, Func2 f)
[
- ^ aFunction(anArray[0],anArray[1]).
+ ^ f(a[0],a[1]).
]
- eval(object anArray, Func3 aFunction)
+ eval(object a, Func3 f)
[
- ^ aFunction(anArray[0], anArray[1],anArray[2]).
+ ^ f(a[0], a[1],a[2]).
]
- eval(object anArray, Func4 aFunction)
+ eval(object a, Func4 f)
[
- ^ aFunction(anArray[0],anArray[1],anArray[2],anArray[3]).
+ ^ f(a[0],a[1],a[2],a[3]).
]
- eval(object anArray, Func5 aFunction)
+ eval(object a, Func5 f)
[
- ^ aFunction(anArray[0],anArray[1],anArray[2],anArray[3],anArray[4]).
+ ^ f(a[0],a[1],a[2],a[3],a[4]).
]
-
}.
class AmbValueCollection
{
object theCombinator.
- constructor new(V