JortSort: Difference between revisions

4,556 bytes added ,  29 days ago
Added Easylang
(Added Easylang)
 
(7 intermediate revisions by 6 users not shown)
Line 23:
{{trans|Python}}
 
<langsyntaxhighlight lang="11l">F jortsort(sequence)
R Array(sequence) == sorted(sequence)
 
Line 33:
print_for_seq([‘a’, ‘c’])
print_for_seq(‘CVGH’)
print_for_seq(‘PQRST’)</langsyntaxhighlight>
 
{{out}}
Line 46:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program jortSort64.s */
Line 179:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
 
=={{header|Action!}}==
<langsyntaxhighlight Actionlang="action!">PROC PrintArray(INT ARRAY a INT size)
INT i
 
Line 252:
Test(d,1)
Test(d,0)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/JortSort.png Screenshot from Atari 8-bit computer]
Line 265:
=={{header|Ada}}==
 
<langsyntaxhighlight Adalang="ada">with Ada.Text_IO, Ada.Containers.Generic_Array_Sort;
 
procedure Jortsort is
Line 282:
Put_Line("""abbigail"" sorted: " & Boolean'Image(Jort_Sort("abbigail")));
Put_Line("""abbey"" sorted: " & Boolean'Image(Jort_Sort("abbey")));
end Jortsort;</langsyntaxhighlight>
 
{{out}}
Line 290:
 
=={{header|AppleScript}}==
<langsyntaxhighlight lang="applescript">use AppleScript version "2.4"
use framework "Foundation"
use scripting additions
Line 346:
((current application's NSArray's arrayWithArray:xs)'s ¬
sortedArrayUsingSelector:"compare:") as list
end sort</langsyntaxhighlight>
{{Out}}
<pre>{false, true}</pre>
Line 352:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">jortSort?: function [a]->
a = sort a
 
Line 364:
 
test ["a" "b" "c"]
test ["c" "a" "b"]</langsyntaxhighlight>
 
{{out}}
Line 375:
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">JortSort(Array){
sorted:=[]
for index, val in Array
Line 383:
return 0
return 1
}</langsyntaxhighlight>
Examples:<langsyntaxhighlight AutoHotkeylang="autohotkey">Array1 := ["a", "d", "b" , "c"]
Array2 := ["a", "b", "c" , "d"]
MsgBox % JortSort(Array1) "`n" JortSort(Array2)
return</langsyntaxhighlight>
Outputs:<pre>0
1</pre>
Line 394:
BQN has a really simple way to represent JortSort:
 
<langsyntaxhighlight lang="bqn"> JSort ← ≡⟜∧
JSort 3‿2‿1
0</langsyntaxhighlight>
Which means "Does the array match itself sorted?"
 
Line 408:
As others did in this page, this example doesn't follow the request to sort the input array and then compare the sorted version to the original one to check if it was already sorted. It only checks if the input is sorted and behaves accordingly.
I've tested this code only with gcc but should work with any C compiler.
<syntaxhighlight lang="c">
<lang c>
#include <stdio.h>
#include <stdlib.h>
Line 464:
 
}
</syntaxhighlight>
</lang>
 
=={{header|C sharp|C#}}==
{{trans|JavaScript}}
<langsyntaxhighlight lang="csharp">using System;
 
class Program
Line 489:
return true;
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
<langsyntaxhighlight lang="cpp">
#include <algorithm>
#include <string>
Line 555:
return 0;
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 566:
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="clojure">(defn jort-sort [x] (= x (sort x)))</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
<langsyntaxhighlight lang="lisp">
(defun jort-sort (x)
(equalp x (sort (copy-seq x) #'<)))
</syntaxhighlight>
</lang>
 
=={{header|Crystal}}==
<langsyntaxhighlight lang="ruby">def jort_sort(array)
array == array.sort
end</langsyntaxhighlight>
 
=={{header|D}}==
<syntaxhighlight lang="d">
<lang d>
module jortsort;
 
Line 597:
assert(!jortSort(["two", "one", "three"]));
}
</syntaxhighlight>
</lang>
 
=={{header|Delphi}}==
{{Trans|JavaScript}}
<syntaxhighlight lang="delphi">
<lang Delphi>
program JortSort;
 
Line 648:
Readln;
end.
</syntaxhighlight>
</lang>
 
 
=={{header|EasyLang}}==
<syntaxhighlight>
proc sort . d[] .
for i = 1 to len d[] - 1
for j = i + 1 to len d[]
if d[j] < d[i]
swap d[j] d[i]
.
.
.
.
func jortsort arr[] .
orig[] = arr[]
sort arr[]
return if orig[] = arr[]
.
print jortsort [ 2 4 6 ]
print jortsort [ 4 2 6 ]
</syntaxhighlight>
{{out}}
<pre>
1
0
</pre>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">iex(1)> jortsort = fn list -> list == Enum.sort(list) end
#Function<6.90072148/1 in :erl_eval.expr/5>
iex(2)> jortsort.([1,2,3,4])
true
iex(3)> jortsort.([1,2,5,4])
false</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">
let jortSort n=n=Array.sort n
printfn "%A %A" (jortSort [|1;23;42|]) (jortSort [|23;42;1|])
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 669 ⟶ 694:
</pre>
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">USING: kernel sorting ;
: jortsort ( seq -- ? ) dup natural-sort = ;</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' FB 1.05.0 Win64
 
' Although it's possible to create generic sorting routines using macros in FreeBASIC
Line 734 ⟶ 759:
Print
Print "Press any key to quit"
Sleep</langsyntaxhighlight>
 
{{out}}
Line 744 ⟶ 769:
 
=={{header|Go}}==
<syntaxhighlight lang="go">
<lang go>
package main
 
Line 773 ⟶ 798:
}
 
</syntaxhighlight>
</lang>
 
=={{header|Haskell}}==
For lists:
<langsyntaxhighlight lang="haskell">import Data.List (sort)
 
jortSort :: (Ord a) => [a] -> Bool
jortSort list = list == sort list</langsyntaxhighlight>
 
or in applicative terms:
 
<langsyntaxhighlight lang="haskell">import Data.List (sort)
 
jortSort
Line 793 ⟶ 818:
--------------------------- TEST ---------------------------
main :: IO ()
main = print $ jortSort <$> [[4, 5, 1, 3, 2], [1, 2, 3, 4, 5]]</langsyntaxhighlight>
{{Out}}
<pre>[False,True]</pre>
Line 801 ⟶ 826:
 
'''Solution'''
<langsyntaxhighlight Jlang="j"> jortsort=: -: /:~</langsyntaxhighlight>
 
More in line with the spirit of the task would be:
 
<langsyntaxhighlight Jlang="j"> jortSort=: assert@(-: /:~)</langsyntaxhighlight>
 
Of course, ideally, assert would be replaced with something more assertive. Perhaps deleting all storage? But even better would be to send email to your boss and leadership explaining (at great length) exactly why they are all idiots. Do enough of this and you will never have to sort again...
 
'''Example Usage'''
<langsyntaxhighlight Jlang="j"> jortsort 1 2 4 3
0
jortsort 'sux'
1
jortsort&> 1 2 4 3;14 6 8;1 3 8 19;'ac';'sux';'CVGH';'PQRST'
0 0 1 1 1 0 1</langsyntaxhighlight>
 
Using jortSort in place of jortsort would throw an error on all but the first of those examples. It would return an empty result for that first example. (We have no way of representing the consequences of the more inane proposals presented here.)
 
=={{header|Janet}}==
<langsyntaxhighlight lang="janet">(defn jortsort [xs]
(deep= xs (sorted xs)))
 
(print (jortsort @[1 2 3 4 5])) # true
(print (jortsort @[2 1 3 4 5])) # false</langsyntaxhighlight>
 
=={{header|Java}}==
Optimized version of JortSort. Even less funny. Doesn't bother with sorting, but simply returns ''true''. Very fast. Use only when you're ''absolutely sure'' that the input is already sorted. You may have to use an unoptimized version of JortSort to ascertain this.
<langsyntaxhighlight lang="java">public class JortSort {
public static void main(String[] args) {
System.out.println(jortSort(new int[]{1, 2, 3}));
Line 836 ⟶ 861:
return true;
}
}</langsyntaxhighlight>
 
<pre>true</pre>
Line 843 ⟶ 868:
 
The original JavaScript implementation courtesy of the author, [https://github.com/jennschiffer/jortsort Jenn "Moneydollars" Schiffer].
<langsyntaxhighlight lang="javascript">var jortSort = function( array ) {
 
// sort the array
Line 855 ⟶ 880:
 
return true;
};</langsyntaxhighlight>
 
=={{header|jq}}==
<langsyntaxhighlight lang="jq">def jortsort: . == sort;</langsyntaxhighlight>
'''Example''':
<langsyntaxhighlight lang="jq">[1, "snort", "sort", [1,2], {"1":2}] | jortsort</langsyntaxhighlight>
{{Out}}
<syntaxhighlight lang ="sh">true</langsyntaxhighlight>
 
=={{header|Jsish}}==
Based on the Javascript satire.
<langsyntaxhighlight lang="javascript">/* jortSort in Jsish, based on the original satire, modified for jsish */
var jortSort = function(arr:array):boolean {
// make a copy
Line 894 ⟶ 919:
jortSort(['snort', 'sort', 1, [1,2], {1:2}]) ==> false
=!EXPECTEND!=
*/</langsyntaxhighlight>
 
{{out}}
Line 901 ⟶ 926:
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">
jortsort(A) = sort(A) == A
</syntaxhighlight>
</lang>
 
{{out}}
Line 922 ⟶ 947:
 
=={{header|K}}==
<syntaxhighlight lang="text">jortsort:{x~x@<x}</langsyntaxhighlight>
'''Example''':
<syntaxhighlight lang="text">jortsort 1 2 3</langsyntaxhighlight>
<pre>1
</pre>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.0.6
 
fun <T> jortSort(a: Array<T>): Boolean {
Line 953 ⟶ 978:
val d = arrayOf('C', 'D', 'A', 'E', 'B')
printResults(d)
}</langsyntaxhighlight>
 
{{out}}
Line 965 ⟶ 990:
 
=={{header|Lua}}==
<langsyntaxhighlight Lualang="lua">function copy (t)
local new = {}
for k, v in pairs(t) do new[k] = v end
Line 978 ⟶ 1,003:
end
return true
end</langsyntaxhighlight>
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">jortSort := proc(arr)
local copy:
copy := sort(Array([seq(arr[i], i=1..numelems(arr))])):
Line 989 ⟶ 1,014:
jortSort(Array([5,6,7,2,1]));
jortSort(Array([-5,0,7,12,21]));
jortSort(Array(StringTools:-Explode("abcdefg")));</langsyntaxhighlight>
{{Out|Output}}
<pre>false
Line 996 ⟶ 1,021:
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">jortSort[list_] := list == Sort[list];
Print[jortSort[Range[100]]];
Print[jortSort[RandomSample[Range[100]]]];</langsyntaxhighlight>
{{out}}
<pre>True
Line 1,004 ⟶ 1,029:
 
=={{header|Nim}}==
<langsyntaxhighlight Nimlang="nim">import algorithm
 
func jortSort[T](a: openArray[T]): bool =
Line 1,016 ⟶ 1,041:
echo ""
test(['a', 'b', 'c'])
test(['c', 'a', 'b'])</langsyntaxhighlight>
 
{{out}}
Line 1,026 ⟶ 1,051:
 
=={{header|Objeck}}==
<langsyntaxhighlight lang="objeck">function : JortSort(elems : CompareVector) ~ Bool {
sorted := CompareVector->New(elems);
sorted->Sort();
Line 1,037 ⟶ 1,062:
 
return true;
}</langsyntaxhighlight>
 
=={{header|OCaml}}==
For lists:
<langsyntaxhighlight lang="ocaml">let jortSortList lst =
lst = List.sort compare lst</langsyntaxhighlight>
For arrays:
<langsyntaxhighlight lang="ocaml">let jortSortArray ary =
let originalArray = Array.copy ary in
Array.sort compare ary;
originalArray = ary</langsyntaxhighlight>
 
=={{header|Oforth}}==
 
<langsyntaxhighlight Oforthlang="oforth">: jortSort dup sort == ;</langsyntaxhighlight>
 
{{out}}
Line 1,061 ⟶ 1,086:
=={{header|ooRexx}}==
{{trans|REXX}}
<langsyntaxhighlight lang="oorexx">jortSort: Parse Arg list
/*---------------------------------------------------------------------
* Determine if list is sorted
Line 1,072 ⟶ 1,097:
End
Return (i=words(list)+1)|(list='')
</syntaxhighlight>
</lang>
 
=={{header|PARI/GP}}==
<langsyntaxhighlight lang="parigp">jortSort(v)=vecsort(v)==v</langsyntaxhighlight>
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">sub jortsort {
my @s=sort @_; # Default standard string comparison
for (0..$#s) {
Line 1,084 ⟶ 1,109:
}
1;
}</langsyntaxhighlight>
The task wants us to sort, but we could implement this by just using <tt>cmp</tt> on the input array elements, which would be faster (especially with unsorted input).
 
=={{header|Phix}}==
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">type</span> <span style="color: #000000;">JortSort</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">=</span><span style="color: #7060A8;">sort</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">type</span>
<!--</langsyntaxhighlight>-->
Then any variable or constant delared as type JortSort raises an error if used incorrectly, eg
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #000000;">JortSort</span> <span style="color: #000000;">ok</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">}</span>
<span style="color: #000000;">JortSort</span> <span style="color: #000000;">bad</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">5</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">6</span><span style="color: #0000FF;">}</span>
<!--</langsyntaxhighlight>-->
{{out}}
Note that while the above is fine under pwa/p2js and can be invoked explicitly, it does not automatically trigger the error.
Line 1,105 ⟶ 1,130:
</pre>
Amusingly the compiler itself uses a variant of jortsort, in that pttree.e declares a whole bunch of ternary tree node constants for all the language keywords and builtins such as
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">global</span> <span style="color: #008080;">constant</span> <span style="color: #000000;">T_while</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">336</span> <span style="color: #000000;">tt_stringF</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"while"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">T_while</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
and if you change that to 338 and try to recompile the compiler, you'll immediately get:
<pre>
Line 1,114 ⟶ 1,139:
It does that because at the lowest level a cmp imm is at least twice as fast as a cmp [mem], and the only other way it could know these constants at compile-time would be to (re)build a 5000-node ternary tree, though I will concede that any sane person would have written a program to write an include file rather than hacking these things by hand.<br>
There is a similar thing in pwa\src\p2js_keywords.e, though it automatically checks, prompts, and auto-rebuilds that for you.
 
=={{header|Picat}}==
<syntaxhighlight lang="picat">go =>
List = [
[1,2,3,4,5],
[2,3,4,5,1],
[2],
"jortsort",
"jortsort".sort()
],
foreach(L in List)
printf("%w: ", L),
if not jortsort(L) then
print("not ")
end,
println("sorted")
end,
nl.
 
jortsort(X) => X == X.sort().</syntaxhighlight>
 
{{out}}
<pre>[1,2,3,4,5]: sorted
[2,3,4,5,1]: not sorted
[2]: sorted
jortsort: not sorted
joorrstt: sorted</pre>
 
=={{header|PicoLisp}}==
<syntaxhighlight lang="picolisp">
<lang PicoLisp>
(de jortSort (L) (= L (sort L)))
(jortSort (1 2 3))
</syntaxhighlight>
</lang>
{{out}}
T
 
=={{header|PowerShell}}==
<syntaxhighlight lang="powershell">
<lang PowerShell>
function jortsort($a) { -not (Compare-Object $a ($a | sort) -SyncWindow 0)}
jortsort @(1,2,3)
jortsort @(2,3,1)
</syntaxhighlight>
</lang>
<b>Output:</b>
<pre>
Line 1,136 ⟶ 1,188:
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang="purebasic">Macro isSort(liste)
If OpenConsole()
Print("[ ") : ForEach liste : Print(liste+Space(1)) : Next : Print("] = ")
Line 1,155 ⟶ 1,207:
For i=1 To 10 : AddElement(l1()) : l1()=Chr(Random(90,65)) : Next
isSort(l1()) : SortList(l1(),#PB_Sort_Ascending) : isSort(l1())
Input()</langsyntaxhighlight>
{{out}}
<pre>[ A Z Q G B N E B G Y ] = False
Line 1,161 ⟶ 1,213:
 
=={{header|Python}}==
<langsyntaxhighlight lang="python">>>> def jortsort(sequence):
return list(sequence) == sorted(sequence)
>>> for data in [(1,2,4,3), (14,6,8), ['a', 'c'], ['s', 'u', 'x'], 'CVGH', 'PQRST']:
Line 1,171 ⟶ 1,223:
jortsort('CVGH') is False
jortsort('PQRST') is True
>>> </langsyntaxhighlight>
 
=={{header|Quackery}}==
Line 1,179 ⟶ 1,231:
<code>jortsortwith</code> returns <code>true</code> if the nest is sorted, sort order is specified after <code>jortsortwith</code>, so <code>jortsortwith ></code> returns <code>true</code> if a nest of numbers is sorted in ascending numerical order, and <code>jortsortwith $<</code> returns <code>true</code> if a nest of strings is sorted in descending lexicographical order.
 
<langsyntaxhighlight Quackerylang="quackery"> [ dup
' [ sortwith ]
]'[ nested join
do = ] is jortsortwith ( [ --> b )</langsyntaxhighlight>
 
===The Non-satirical version===
Line 1,188 ⟶ 1,240:
Jortsort, as specified in this task, is a sensible function ("is this nest sorted?) done inefficiently. This is the efficient version, with a more sensible name.
 
<langsyntaxhighlight Quackerylang="quackery"> [ true swap
]'[ temp put
dup [] != if
Line 1,195 ⟶ 1,247:
[ dip not conclude ] ] ]
drop
temp release ] is sortedwith ( [ --> b )</langsyntaxhighlight>
 
=={{header|Racket}}==
<langsyntaxhighlight Racketlang="racket">#lang racket/base
(define (jort-sort l [<? <])
(equal? l (sort l <?)))</langsyntaxhighlight>
 
Racket's <tt>sort</tt> function is efficient in that it starts by
checking the input, so the above could be made more efficient with a
pointer equality test:
<langsyntaxhighlight Racketlang="racket">#lang racket/base
(define (jort-sort l [<? <])
(eq? l (sort l <?)))</langsyntaxhighlight>
 
And an explicit implementation that checks the order (note that Racket's
<tt>sort</tt> expects a “smaller-than” comparator):
<langsyntaxhighlight Racketlang="racket">#lang racket/base
(define (jort-sort l [<? <])
(or (null? l)
(for/and ([x (in-list l)] [y (in-list (cdr l))])
(not (&lt;? y x))))) ; same as (&lt;= x y) but using only &lt;?</langsyntaxhighlight>
 
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku" perl6line>sub jort-sort { @_ eqv @_.sort }</langsyntaxhighlight>
Actually, there's a better internal sort that seems to work best for lists that are already completely sorted, but tends to fails for any other list. The name of this sort, <tt>[!after]</tt>, is completely opaque, so we're pretty much forced to hide it inside a subroutine to prevent widespread panic.
<syntaxhighlight lang="raku" perl6line>sub jort-sort-more-better-sorta { [!after] @_ }</langsyntaxhighlight>
However, since Perl 6 has a really good inliner, there's really little point anyway in using the <tt>[!after]</tt> reduction operator directly, and <tt>jort-sort-more-better-sorta</tt> is really much more self-documenting, so please don't use the reduction operator if you can. For example:
{{out}}
Line 1,236 ⟶ 1,288:
The array elements (items) may be any form of number that REXX supports, and/or they can be alphabetic characters.
===using sort===
<langsyntaxhighlight lang="rexx">/*REXX program verifies that an array is sorted using a jortSort algorithm. */
parse arg $ /*obtain the list of numbers from C.L. */
if $='' then $=1 2 4 3 /*Not specified? Then use the default.*/
Line 1,261 ⟶ 1,313:
if !.k\==@.k then return 0 /*the array isn't sorted. */
end /*k*/
return 1 /*the array is sorted. */</langsyntaxhighlight>
'''output''' &nbsp; when using the default input: &nbsp; <tt> 1 &nbsp; 2 &nbsp; 4 &nbsp;3 </tt>
<pre>
Line 1,283 ⟶ 1,335:
 
Nothing is mentioned how it does this, and it certainly doesn't say that it sorts the input to verify if it's in order.
<langsyntaxhighlight lang="rexx">/*REXX program verifies that an array is sorted using a jortSort algorithm. */
parse arg $ /*obtain the list of numbers from C.L. */
if $='' then $=1 2 4 3 /*Not specified? Then use the default.*/
Line 1,297 ⟶ 1,349:
p=_
end /*j*/
return 1 /*array is sorted.*/</langsyntaxhighlight>
'''output''' &nbsp; is the same as the 1<sup>st</sup> REXX version. <br><br>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
aList = [4,2,3,1]
see jortSort(aList) + nl
Line 1,312 ⟶ 1,364:
next
return true
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
<langsyntaxhighlight Rubylang="ruby">def jort_sort(array)
array == array.sort
end</langsyntaxhighlight>
 
{{trans|JavaScript}}
<langsyntaxhighlight Rubylang="ruby">def jort_sort(array)
# sort the array
original_array = array.dup
Line 1,331 ⟶ 1,383:
true
end</langsyntaxhighlight>
 
=={{header|Rust}}==
{{trans|JavaScript}}
<langsyntaxhighlight lang="rust">use std::cmp::{Ord, Eq};
 
fn jort_sort<T: Ord + Eq + Clone>(array: Vec<T>) -> bool {
Line 1,350 ⟶ 1,402:
 
return true;
}</langsyntaxhighlight>
 
 
'''Using iterators:'''
<langsyntaxhighlight lang="rust">
fn jort_sort<T>(slice: &[T]) -> bool
where
Line 1,366 ⟶ 1,418:
.zip(sorted.iter())
.all(|(orig, sorted)| orig == sorted)
}</langsyntaxhighlight>
 
 
'''Idiomatic:'''
<langsyntaxhighlight lang="rust">
fn jort_sort<T>(slice: &[T]) -> bool
where
Line 1,379 ⟶ 1,431:
 
slice == sorted
}</langsyntaxhighlight>
 
=={{header|Scala}}==
Line 1,385 ⟶ 1,437:
The Java deepEquals() method will work as a replacement.
 
<langsyntaxhighlight lang="scala">import java.util.Objects.deepEquals
 
def jortSort[K:Ordering]( a:Array[K] ) = deepEquals(a.sorted, a)</langsyntaxhighlight>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">func jort_sort(array) { array == array.sort };</langsyntaxhighlight>
 
=={{header|SSEM}}==
Line 1,398 ⟶ 1,450:
 
There are a couple of limitations that make the program less useful than it would otherwise be. Firstly, it is essentially a single-shot application: if you want to test a second array, you will need to manually reset storage address 0 to 16411 and storage address 26 to 0. Secondly, the SSEM's modest storage capacity means that the largest array you can sort (or not sort) using this program consists of (the terminating zero, and) four integers. Subject to those provisos, however, the program should be found to meet the specification satisfactorily.
<langsyntaxhighlight lang="ssem">11011000000000100000000000000000 0. -27 to c
00000000000000110000000000000000 1. Test
11101000000000000000000000000000 2. 23 to CI
Line 1,422 ⟶ 1,474:
11111111111111111111111111111111 22. -1
00001000000000000000000000000000 23. 16
01001000000000000000000000000000 24. 18</langsyntaxhighlight>
 
=={{header|Swift}}==
<langsyntaxhighlight Swiftlang="swift">func jortSort<T:Comparable>(array: [T]) -> Bool {
return array == sorted(array)
}</langsyntaxhighlight>
 
{{trans|JavaScript}}
<langsyntaxhighlight Swiftlang="swift">func jortSort<T:Comparable>(inout array: [T]) -> Bool {
// sort the array
Line 1,442 ⟶ 1,494:
return true
}</langsyntaxhighlight>
 
=={{header|Tcl}}==
 
<langsyntaxhighlight lang="tcl">
proc jortsort {args} {
set list [lindex $args end]
Line 1,453 ⟶ 1,505:
expr {[lsort {*}$options $list] eq $list}
}
</syntaxhighlight>
</lang>
This supports all of the options known to the native '''lsort''' command, making it quite natural to use. The commented line ensures it will do the right thing for any list, even if it has funny formatting because it's embedded in source:
<pre>
Line 1,469 ⟶ 1,521:
{{works with|Bourne Again SHell}}
 
<syntaxhighlight lang="sh">
<lang sh>
JortSort() {
cmp -s <(printf “%s\n” “$@“) <(printf “%s\n” “$@“ | sort)
Line 1,486 ⟶ 1,538:
JortSortVerbose a b c
JortSortVerbose c a b
</syntaxhighlight>
</lang>
{{Out}}
<pre>True
Line 1,494 ⟶ 1,546:
 
=={{header|VBScript}}==
<langsyntaxhighlight lang="vb">Function JortSort(s)
JortSort = True
arrPreSort = Split(s,",")
Line 1,518 ⟶ 1,570:
WScript.StdOut.Write JortSort("a,b,c")
WScript.StdOut.WriteLine
WScript.StdOut.Write JortSort("a,c,b")</langsyntaxhighlight>
{{out}}
<pre>True
Line 1,524 ⟶ 1,576:
True
False</pre>
 
=={{header|V (Vlang)}}==
{{trans|go}}
<syntaxhighlight lang="v (vlang)">
fn main() {
println(jort_sort([1, 2, 1, 11, 213, 2, 4])) //false
println(jort_sort([0, 1, 0, 0, 0, 0])) //false
println(jort_sort([1, 2, 4, 11, 22, 22])) //true
println(jort_sort([0, 0, 0, 1, 2, 2])) //true
}
fn jort_sort(a []int) bool {
mut c := a.clone()
c.sort()
for k, v in c {
if v == a[k] {
continue
} else {
return false
}
}
return true
}</syntaxhighlight>
 
{{out}}
<pre>
false
false
true
true
</pre>
 
=={{header|Wren}}==
{{libheader|Wren-sort}}
<langsyntaxhighlight ecmascriptlang="wren">import "./sort" for Sort
 
var jortSort = Fn.new { |a|
Line 1,538 ⟶ 1,621:
 
var tests = [ [1, 2, 3, 4, 5], [2, 1, 3, 4, 5] ]
for (test in tests) System.print("%(test) -> %(jortSort.call(test) ? "sorted" : "not sorted")")</langsyntaxhighlight>
 
{{out}}
<pre>
[1, 2, 3, 4, 5] -> sorted
[2, 1, 3, 4, 5] -> not sorted
</pre>
 
=={{header|XPL0}}==
{{trans|Wren}}
<syntaxhighlight lang "XPL0">include xpllib; \for Sort
 
func JortSort(A, N);
int A, N, B, I;
def SizeOfInt = 4;
[B:= Reserve(N*SizeOfInt);
for I:= 0 to N-1 do B(I):= A(I);
Sort(B, N);
for I:= 0 to N-1 do
if B(I) # A(I) then return false;
return true;
];
 
int Tests, Test, I;
def Size = 5;
[Tests:= [ [1, 2, 3, 4, 5], [2, 1, 3, 4, 5] ];
for Test:= 0 to 2-1 do
[ChOut(0, ^[);
for I:= 0 to Size-2 do
[IntOut(0, Tests(Test,I)); Text(0, ", ")];
IntOut(0, Tests(Test,I));
Text(0, "] -> ");
Text(0, if JortSort(Tests(Test), Size) then "sorted" else "not sorted");
CrLf(0);
];
]</syntaxhighlight>
{{out}}
<pre>
Line 1,548 ⟶ 1,665:
=={{header|zkl}}==
Two "solutions", a linear one and one that actually sorts.
<langsyntaxhighlight lang="zkl">fcn jort(list){ False!=list.reduce(fcn(a,b){ (a>b) and return(Void.Stop,False); b }) }</langsyntaxhighlight>
<langsyntaxhighlight lang="zkl">fcn jort(list){ list==list.copy().sort() }</langsyntaxhighlight>
{{out}}
<pre>
1,983

edits