単語内の文字をランダム化する方法


55

論争の的となっている話によると、原型のドローのltteresのオドラーは、元のドローでのリストとlsat lteter macthのようなlnogのように、raednigにあまり向いていません。

だから、楽しみのために、最初と最後の文字を所定の位置に保ちながら、単語内の文字の順序をランダム化する最短の機能は何でしょうか?

JavaScriptを使用してこれを確認します。すべての空白が削除され、124 130文字になりました。

function r(w) {
  var l=w.length-1;
  return l<3?w:w[0]+w.slice(1,l).split("").sort(function(){return Math.random()-.5}).join("")+w[l];
}

短いJavaScriptはいつでも歓迎します。


  • 編集:長さチェックが追加されました。短い単語に対して関数が失敗することはありません。

3
Haskell、4文字:r=id
トーマスエディング

2
はい。入力とまったく同じものを返します。別の注意として、句読点については何をしますか?文字のみで構成される単語のみを操作しますか?
トーマスエディング

1
@trinithisはあなたが何について話しているのか分かりませんidが、アイデンティティ関数です。私はまだこの問題に対するHaskellの解決策を100文字未満で見たいと思っています。
アーレン

3
結果の均一な分布を要求するために、仕様を更新する必要がありますか?これは、4文字のHaskellソリューションを許可しません。また、Javascriptソリューションの例も許可されません(そのような並べ替えを行うことでシャッフルは均一ではありません)。
トーマスエディング

2
最初の文のための+1:それは実際にそれを実現するために私に数秒かかりましたが、間違ったXPを綴られた
ネイトKoppenhaverに

回答:


21

Haskell、4文字

提案された関数trinithisは、実際に仕様に一致します。

s=id

文字列を変更せずに返します。したがって、最初と最後の文字をそのままにして、他のすべての文字の置換を行います。

順列の確率分布に不満がある場合、より良い分布をもたらすソリューションがあります。それは明らかにはるかに複雑です:

ハスケル、 110 120 107文字

import Random
s l=randomRIO(1,length l-2)>>=g.($l).splitAt
g(a:b,c:d)=fmap(a:).s$c:b++d
g(a,b)=return$a++b

この関数を使用するプログラムの例:

main = getLine >>= s >>= putStrLn

18
「順列の確率分布に不満がある」と私は笑いました。:)
トマラック

@Rotsorその関数をどのように呼び出すのですか?
アーレン

投稿に例を追加しました。
ローター

fmap((a:t!!i:).tail)
FUZxxl

3
最初の解決策はチャレンジ基準に適合しないため、削除する必要があります。チャレンジの説明には「ランダム化」と記載されています。メタによると、randomが常に同じ出力を持つとは限りません
mbomb007 16

19

J、26 24 23文字

r=:{.,({~?~@#)&}.&}:,{:

一般的なゴルフの規則に従って、フレーズを名前に結び付ける必要はありません。
-FUZxxl

#?#?~@#
random

15

ルビー、44文字

r=->w{w[h=1..-2]=[*w[h].chars].shuffle*"";w}

短い単語でも機能します。つまり、1、2、または3文字の単語は変更されずに返されます。

編集: Venteroの配列スプラットのアイデアを使用すると、別の文字が保存されます。


実際には44文字です。私は最終的に自分自身を微調整することでまったく同じ答えを思いつきました-今、あなたのものを読んだ後、私はコピー猫のように感じます。
アレクシYrttiaho

@ user2316もちろん、あなたは正しいです。ありがとうございました。
ハワード

11

Ruby 1.9、46文字

r=->w{w[0]+[*w[1..-2].chars].shuffle*""+w[-1]}

+1このarray-splatの使用により、1文字も節約できました。いい案。
ハワード

私はルビーを知らない-それは私のruby1.8で失敗するので、私は決してバージョンが必要だと思いますか?「I」などの入力で動作しますか?
ユーザー不明

@user:そこに「Ruby 1.9」と書かれています。;)-Ventero-言及するのを忘れていた賢明な要件の1つは、語長0および1で失敗しないことです。申し訳ありません。
トマラック

11

Golfscript

「関数」として(コードブロックと命名):20文字

{1/(\)\{;9rand}$\}:r

スタックの一番上の要素を操作する場合:16文字

1/(\)\{;9rand}$\

これはあまり良いシャッフルではありませんが、おそらくこのタスクには問題ありません。(つまり、「十分にランダムに見える」よ、である。)それでも、2つの文字のコストで、あなたが得ることができる非常に置き換えることで、より良いシャッフルを9して9.?
イルマリカロネン

これは、1文字の単語では失敗します。また、関数が(単一の文字列ではなく)文字列、文字列の配列、文字列を返すことを許可されるべきだとは思いません。
マーティンエンダー

11

C ++、79文字範囲チェック付き

string f(string s){if(s.size()>3)random_shuffle(&s[1],&s.end()[-1]);return s;}

C ++、 8165文字範囲チェックなし

string f(string s){random_shuffle(&s[1],&s.end()[-1]);return s;}

結果を返す代わりに参照渡しを使用すると、いずれかのソリューションの別の10文字が削られます。

完全なプログラム、単語の文字列を読み取り、それらを変換するシャッフル:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <ctime>
#include <string>

using namespace std;    
string f(string s){if(s.size()>3)random_shuffle(&s[1],&s.end()[-1]);return s;}

int main() {
    std::srand(std::time(0));
    std::string s;
    while(std::cin >> s)
        std::cout << f(s) << " ";
    std::cout << std::endl;
}

士気:すでにそこにあるものを構築しないでください。 ああ、オーバーフローチェックは難解です。


いいstd::random_shuffleですね、それは私にとって新しいものです。ところで#include<string>、完全なコードを忘れてしまったと思います。
スコットローガン

1
そのようなものは、私が当初考えていたものです。残念ながら、JSで文字列をその場でシャッフルする組み込み機能はありません。
トマラック

非常に短い文字列では失敗します。
ユーザー不明

確かに、長さのチェックがありません(私も同様です)。ところで、@ Arlenの答えも一見の価値があります。
トマラック

1
@userunknownそれが私が「オーバーフローチェックは大騒ぎのためだ」という意味です。しかし公平を期すために、他のほとんどすべてのソリューションも同様です。
コンラッドルドルフ

8

Python、86文字

import random as r
def f(w):t=list(w[1:-1]);r.shuffle(t);return w[0]+''.join(t)+w[-1]

そして、これを使用する例を次に示します。

for x in ["ashley", "awesome", "apples"]:
    print f(x)

これは私の初めてのゴルフ練習です。問題を解決した後、私は答えを見ることにしました。それは私の答えがユニークではないことは驚きではありません。これは楽しかったです:o)

他の応答を見た後に1つの変更を行い、エイリアスを使用するようにimportステートメントを変更していました。いい案。; o)


それでも、あなたのソリューションは私の先に投票されます!:p
ブースバイ

短い文字列では失敗します。短い文字列()で失敗した場合、私のPythonの答えは75文字になりますfrom random import*\nf=lambda w:w[0]+''.join(sample(w[1:-1]),len(w)-2)+w[-1]
ジンボブ博士12年

7

C(K&R)-88 86 87文字

r(char*s){int m,j,l=strlen(s)-2,i=l;while(--i>0){j=rand()%l+1;m=s[j];s[j]=s[1];s[1]=m;}}

Cには組み込みのスワップまたはシャッフル機能がないため、手動で行う必要がありました:(

Ungolfed r()を使用したサンプルプログラム:

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>

// -----------------------------------------------------------------------
r( char *s )
{
    int m, j, l=strlen(s)-2, i=l;

    while (--i>0)
    {
        j = rand() % l + 1;

        m = s[j];
        s[j] = s[1];
        s[1] = m;
    }

}
// -----------------------------------------------------------------------
int main()
{
    char s[] = "anticipated";

    srand( time(0) );
    r( s );
    puts( s );

    return 0;
}

編集:sが3文字未満で構成されている場合のバグを修正しました(気付いたことはユーザーに知られています!)


1
glibcには、非標準のライブラリ関数がありました(だったか?)strfry
機械式カタツムリ

面白い経験、私がそれを与えるならchar s[] = "na"; // not anticipated
ユーザー不明

@user uknown:バグに気づいてくれてありがとう、コードを編集して修正しました!(whileループの条件で> 0を追加し、さらに2つ「コストがかかります」が、必要な文字:))
ハリーK.

1
@Mechanical snail:strfyはまだglibcにあると思います。
ハリーK.

7

python、87 79 75 93 92文字(長さ0.1の文字列を処理)

from random import*
f=lambda w:w if 4>len(w)else w[0]+''.join(sample(w[1:-1],len(w)-2))+w[-1]

編集:元々は文字列の単語を分割するはずだと考えていました(128文字で行いました。現在87文字で必要です)。ああ、読解が下手です。

編集2:defから6文字を保存するためにdefからラムダ関数に変更します。サンプルが既にネームスペースにインポートされていると仮定すると(from random import sample)、これは約60に低下する可能性があります。

編集3:「len(w [1:-1])」(12文字)から「len(w)-2」(8文字)は、ニブラーの良い提案ごとに。

編集4:JBernandoは1つの文字を保存しました(from random import *それが同等であると考えて見ました-のスペースimport *が不要であることに気付いていません)。ユーザー不明は、w if len(w)<4 else0文字と1文字の文字列を正しく処理するために19文字を追加しました。

編集5:ブースのコードゴルフトリックごとに別の文字を保存しました。 if len(w)<4 elseif 4>len(w)else


ただし、質問は入力を単語としてのみ定義し、単語の文字列ではありません。:)
ベンリチャーズ

1
@ sidran32:ありがとう、悪い。(読み直して)気付いたところ、あなたのコメントを見ました。削除済み-編集済み-そして削除解除済み。
ジンボブ博士11

アイデア-これを行うことで3文字をトリムできます。...def f(w):j = w [1:-1]; return w [0] + ''。join(r.sample(j、len(j)))+ w [-1]
arrdem

@rmckenzie:いい考えだ。ただし、ラムダ関数(6文字を節約)にトリミングした直後にコメントを見る直前に、中間変数を定義する方法を実行できなくなりました。
ジンボブ博士11

3
len(w)-2代わりにlen(w[1:-1])
ニブラー

6

C ++、111 97文字

std::string f(std::string s){for(int i=s.size()-1;i>1;std::swap(s[rand()%i+1],s[--i]));return s;}

これをテストしたい人のための完全なプログラムは次のとおりです。

#include<string>
#include<iostream>

std::string f(std::string s){for(int i=s.size()-1;i>1;std::swap(s[rand()%i+1],s[--i]));return s;}

int main(){
    for(int i = 0; i<100; ++i)
    std::cout<<f("letters")<<std::endl;
}

編集

両方のスワップインデックスをランダム化する必要はなく、変数といくつかの文字を保存する必要があることに気付きました。


優れた。ほとんどのソリューションは、非常に小さな入力では失敗します。あなたのものではありません。
ユーザー不明

6

php(68文字)

$r=preg_replace('/^(\w)(\w+)(\w)$/e','$1.str_shuffle($2).$3',trim($w));

短い(60文字)

$r=preg_replace('/(.)(.+)(.)/e','$1.str_shuffle($2).$3',$w);

+1とてもいい。:)実際には、trim()をドロップできます。正規表現では、アンカーを削除しての.代わりに使用できます\w
トマラック

@Tomalak提案このソリューションをPerlで書き直してみてください。彼の提案を含めて、私はこれを得ました:use List::Util 'shuffle';sub r{$_[0]=~m/(.)(.+)(.)/;$1.join('',shuffle split//,$2).$3;}それは87文字です。use行がない場合、62文字です。
ベンリチャーズ

この動作のデモを提供できますか?私ができないので...
スティーブロビンス

6

Perl- 96(または71)文字 84(または59)文字

これがPerlで思いついたものです。それを行うためにいくつかの異なる方法を試しましたが、これは私がこれまで考えていたものから最短で、97文字でした。

use List::Util 'shuffle';sub r{($b,@w)=split//,$_[0];$e=pop(@w);return$b.join('',shuffle@w).$e;}

ただし、「use」行を切り取ると(他の人はCプログラムの#include行を除外しているため、これは有効だと思います)、さらに71文字に減らすことができます

sub r{($b,@w)=split//,$_[0];$e=pop(@w);return$b.join('',shuffle@w).$e;}

編集 @tobius 'メソッドを実装してこれを実行することをお勧めします。このように、私はそれを84文字まで、またはuse行を削除すること59文字にしました

use List::Util 'shuffle';sub r{$_[0]=~m/(.)(.+)(.)/;$1.join'',shuffle split//,$2.$3}

2
バージョンを87に短縮:use List::Util 'shuffle';sub r{($b,@w)=split//,$_[0];$e=pop@w;join'',$b,(shuffle@w),$e}
mbx

1
@ sidran32 比較のために、@ tobius 'answerのバリアントをPerlに実装できますか?
トマラック

@Tomalak確かに、試してみます。
ベンリチャーズ

1
正規表現のバージョンを3文字短縮しました:use List::Util 'shuffle';sub r{$_[0]=~m/(.)(.+)(.)/;$1.join'',shuffle split//,$2.$3}
mbx

いいね わかりやすくするために、括弧の山積み支援を使用することにあまりにも慣れています。ゴルフをするときの悪い習慣。:P
ベンリチャーズ

5

ルビー、77 75文字

def r(s);f=s.size-2;1.upto(f){|i|x=rand(f)+1;t=s[i];s[i]=s[x];s[x]=t};s;end

少し冗長な言語での私のScalaソリューション。私は決してRubyの専門家ではないので、おそらく改善の余地があります。


ワオ。Scalaソリューションとして「I」で動作します。
ユーザー不明

5

ルビー1.9、77の 48 46 44文字

r=->w{w[h=1..-2]=[*w[h].chars].shuffle*"";w}

免責事項:私はこれを最高ランクの回答に基づいて調整しました-後でまったく同じ回答に気づきました。元のアイデアに忠実であったが、短いラムダとのルビー1.8からルビー1.9に変更した履歴を確認できshuffleます。

空の単語が許可されている場合、56 54文字

r=->w{w.empty?||w[h=1..-2]=[*w[h].chars].shuffle*"";w}

誰もスペイン語の「私」を期待していません。
ユーザー不明

同様に0または1文字でケースを処理しようとしました
のAleksi Yrttiaho

5

Python 3、94 93 91文字

別の手法を使用します。Python 2でも機能する場合があります。

from random import*
s=lambda x:x[0]+''.join(sample(x[1:-1],len(x)-2))+x[-1]if x[0:-1]else x

... if x[0:-1] else x与えx、その長さが1の場合は(それ以外の場合は、複製されます)。これにより、関数は長さ0および1の文字列に対して機能します。

これsample()https://stackoverflow.com/questions/2668312/shuffle-string-in-python/2668366#2668366からです。

それは一つの式なので、我々は使用することができますlambda(排除returndefおよび括弧のペア)。

編集: from random import*他のPythonの送信後に1文字を保存します。


ここでとても遅いのを知っていますが、にx[0:-1]なることができx[:-1]ますか?
ザカリー

4

JavaScript- 118 122文字

JavaScriptの短縮-空白のない118文字。OPとほぼ同じアルゴリズムを使用しますが、連鎖は少なくなります。私は多くの再帰を試み、いくつかの反復を試みましたが、それらはすべて何らかの形で動けなくなる傾向があります。

function s(w)
{
    w = w.split('');
    var a = w.shift(),
        z = w.pop();
    return z?a + (w.sort(function() { return Math.random() - .5}).join('')) + z:a;
}

「I」テストに合格しません。
ユーザー不明

@Ryan return z?a+...+z:w;暗黙的な長さチェックとして使用することは適切です。静かな仮定は、関数が「有効な」単語のみを受け取るというものでした。
トマラック

良い点は、wが変更されていることを除いて、3進法aで使用する必要があることelseです。編集済み、最大122文字。
ライアンキナル

@Ryan:a2文字の入力では間違っていると思います。:-\いま度は要件をもっと注意深く並べます。
トマラック

実際にはそうなるとは思いません。z単語が1文字(またはそれ以下)の場合にのみ未定義になります。
ライアンキナル

4

D、62文字

import std.random;void s(char[] s){randomShuffle(s[1..$-1]);}

大丈夫私は実際の文字列の代わりに通常のchar配列(これは不変のchar []であるため、インプレースシャッフルがありません)

長さをチェックして編集すると、さらに14が必要です

import std.random;void s(char[] s){if(s.length>1)randomShuffle(s[1..$-1]);}

そして、「I」のような入力に対して何を返しますか?
ユーザー不明

結果を返すことは、より公平です(=よりよく比較できます)。
コンラッドルドルフ

@user範囲エラー。@ konradが必要でreturn s;、char []はさらに11個のchar型を返します
ラチェットフリーク

@ratchetプログラム全体を投稿してください。ところで、私はあなたがなぜカウントしているのかimport std.random;、そして関数だけではないのか理解できません。
アーレン

でスペースを省くchar[] s(使用する)ことで1バイト節約できると思いますがchar[]s、私は何年もDを使用していません。
ティムČas16年

4

php 5.3(60文字)

$r=!$w[2]?:$w[0].str_shuffle(substr($w,1,-1)).substr($w,-1);

56文字に改善され、バージョン5.3は不要になりました。

$r=substr_replace($w,str_shuffle(substr($w,1,-1)),1,-1);

他のPHPの回答に対する+1の選択肢。短くはありませんが、正規表現はプラスではありません。
トマラック

バージョン5.3を必要としない短いソリューションで更新されました
migimaru

古いバージョンは正しくありませんtrue。短い文字列を返します。
タイタス

3

Perl-111文字(ライブラリ関数を使用せずに)

sub r{($f,@w)=split//,shift;$l=pop@w;while(@w){if(rand(9)>1){push@w,shift@w}else{push@t,pop@w}}join'',$f,@t,$l}

使用法

$in="randomizethis";
$out = &r($in);
print "\nout: $out";
sub r{($f,@w)=split//,shift;$l=pop@w;while(@w){if(rand(9)>1){push@w,shift@w}else{push@t,pop@w}}join'',$f,@t,$l}

3

Python

Python の90 89 112文字です!

編集1:今回は関数として!

(ニブラーに感謝)

編集2:短い単語を処理するようになりました

(ユーザー不明に感謝)

import random as r
def q(s):
 a=list(s)
 b=a[1:-1]
 r.shuffle(b)
 if len(s)<4:
  return s
 return a[0]+''.join(b)+a[-1]

仕様に従って関数を記述するとさらに少なくなります:)
ニブラー

ああ、残念なシャッフルは文字列では動作しません
ニブラー

1
ランダムモジュールは、ナイトクラブの私のようなものです。:)
Andbdrew

「I」のような入力では機能しません。「II」を返します。
ユーザー不明

ありがとう!現在は短い単語を処理しますが、少し長くなっています:)
Andbdrew

3

Scala、135 139 142 156文字

def r(s:String)={var(x,o,t,f)=(0,s.toArray,' ',s.size-2)
for(i<-1 to f){t=o(i)
x=util.Random.nextInt(f)+1
o(i)=o(x)
o(x)=t}
o.mkString}

-7:除去「:文字列」(戻り型を推測することができる)
-7:取り除か「リターン」(最後の式が戻り値である)
-3:因数分解s.size-2アウト
-4:toCharArray- >toArray


「I」と「Verwürfel」で動作し、派手なPython文字は使用しません。:)しかし、「シャッフル」を使用する私のソリューションは少し短くなります。
ユーザー不明

@ユーザー不明編集をありがとう:
ガレス

3

Python、86文字

Slnicigは安全であるため、cknnceigが不要であることはありません。すべてのleghtnsのWkros。

from random import*
def f(x):x=list(x);t=x[1:-1];shuffle(t);x[1:-1]=t;return''.join(x)

3

C ++ 11:-68 66文字

auto f=[&](){if(s.size()>2)random_shuffle(s.begin()+1,s.end()-1);};

完全なプログラム:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main(int argc, char* argv[]){

  string s = "SomestrinG";
  auto f=[&](){if(s.size()>2)random_shuffle(s.begin()+1,s.end()-1);};

  f();
  cout << s << endl;
  return 0;
}

入力文字列のハードコーディングは合法ですか?
トーマスエディング

@trinithis私たちは関数自体だけに関心があると思った。プログラムは、関数の使用方法のみを示します。とにかく、この場合、入力をハードコーディングしなくても違いはありません。ちょうど追加string s; cin >> s;
アーレン

3

Ruby 1.9、43文字

r = w [0] + [* w [1 ..- 2] .chars] .shuffle.join + w [-1]

1文字の文字列ではまだ機能せず(その文字を複製します)、空の文字列では失敗します。



3

R、104(126)

f=function(w){s=strsplit(w,"")[[1]];paste(c(s[1],sample(s[2:(length(s)-1)]),s[length(s)]),collapse="")}

使用法:

for (i in 1:10) print(f("parola"))
[1] "plraoa"
[1] "prolaa"
[1] "praola"
[1] "parloa"
[1] "plaora"
[1] "palroa"
[1] "porlaa"
[1] "ploraa"
[1] "porlaa"
[1] "ploraa"

以下の関数は、長さが3未満の単語で機能します。

f=function(w){s=strsplit(w,"")[[1]];ifelse(length(s)<3,w,paste(c(s[1],sample(s[2:(length(s)-1)]),s[length(s)]),collapse=""))}

f("pl")
[1] "pl"
f("a")
[1] "a"

タスクの一部は、最初と最後の文字を移動することではありませんでした。
トマラック

@トマラック修正!
パオロ

長さが3未満の単語でも機能しますか?
トマラック

@Tomalakこれで問題ないはずです!修正してくれてありがとう!
パオロ

3

Python、102文字

def f(x):t=list(x)[1:-1];k='';exec'k+=t.pop(id(7)%len(t));'*len(t);return[x[0],x[0]+k+x[-1]][len(x)>1]

インポートなし!1文字以上の単語に対して機能します。これは私の最初のゴルフエントリであり、私はBlueEyedBeastのShortestコードからのエントリに触発され、id(Object)を使用するというアイデアの非決定的な出力生成しました。


説明:最初と最後を除く入力から文字のリストを作成し、このリストから繰り返しポップし、空になるまで新しいリストに追加します。ポップ元のインデックスはid(7)%len(ポップ元のリスト)です。id(7)はオブジェクト7のメモリアドレスであるため、本質的にランダムです。これで、元の入力の中心からランダムにスクランブルされた文字のリストができました。これで元の出力の最初と最後の文字がそれに応じて追加され、必要な出力が得られました:(最初の文字)+(スクランブルされた中央)+(最後の文字)。


3

R、 95 92 91文字

f=function(w,a=el(strsplit(w,'')),b=length(a))cat(a[1],sample(a[c(1,b)],b-2),a[b],sep="")

Rの遅延評価を使用して関数パラメーターとしてaとbを計算し、後で再利用してスペースを節約します。また、他のRの回答とは異なり、これは1文字以上のすべての単語に対して機能します。以下の例:

> f("hippopotamus")
hpuoopaitmps

> f("dog")
dog

> f("az")
az

編集: 交換しunlist()[[]] [[1]]をel()に置き換えました


2

D:55文字

void f(T)(T s){if(s.length>2)randomShuffle(s[1..$-1]);};

完全なプログラム:

import std.stdio, std.random, std.conv;

void f(T)(T s){if(s.length>2)randomShuffle(s[1..$-1]);};

void main(){

  char[] s = to!(char[])("SomestrinG");

  f(s);
  writeln(s);
}

else s部品が欠けていると思いますか?
トマラック

1
@Tomalakいいえ、必要ありません。文字列の長さが2以下の場合、そのままにします。また、randomShuffle()インプレースです。
アーレン

うわー、競争力のあるD。IIRCにrandomShuffle(s[1..$-1])なる可能性があると思いますs[1..$-1].randomShuffle(この投稿より古いDバージョンの場合を除く)
ザカリー

2

アーラン、188の 172 132文字

f([H|C=[_|_]])->T=[lists:last(C)],[H|s(C--T,T)];f(X)->X. s([],N)->N;s(D,N)->E=[lists:nth(random:uniform(length(D)),D)],s(D--E,E++N).

私はまだアーランを学んでいるので、これを短くするためのヒントはありがたいです。

完全なコード(string_shuffleモジュール):

-module(string_shuffle).
-export([f/1]).

f([H|C=[_|_]])->
    T=[lists:last(C)],
    [H|s(C--T,T)];f(X)->X.
f(X)->X.

s([],N)->N;
s(D,N)->
    E=[lists:nth(random:uniform(length(D)),D)],
    s(D--E,E++N).

編集

シャッフルパーツを別の関数として取り出し、リストの先頭と末尾を渡す必要がなくなりました。

編集2

一つ取り除くために再構築f機能パターンを、変更2つのパラメータのみ、受け入れるようにシャッフル機能を変更するlists:deleteために--[]、スワップlists:reverseのための呼び出しをlists:last

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.