Advanced List OperationsJ

print

高度なリスト処理


リストを他のリストに変換するいくつかの演算子があります。この節ではそのような演算子を扱います。これらは高度な計算をするのに強力なツールです。現実的な場面での使い方を知るために、CindyScript の描画の例を読むことを強く勧めます。

要素の組み合わせ



ペアを作る: pairs(<list>)



説明: この演算子は、リストに含まれるすべての要素から2つずつを組み合わせたペアの部分リストを要素とするリストを作ります。この演算子は、いくつかの点があるときそれらを結ぶすべての線分を作るときに有用です。

例:

式: 結果:
pairs([1, 2, 3, 4]) [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]





チェーンを作る: consecutive(<list>)



説明: この演算子は、引数 <list> の連続する2つずつの要素のペアからなるリストを作ります。

例:

式: 結果:
consecutive([1, 2, 3, 4, 5]) [[1, 2], [2, 3], [3, 4], [4, 5]]





輪を作る: cycle(<list>)



説明: この演算子は、引数 <list> の連続する2つずつの要素のペアからなるリストを作ります。さらに、最後の要素と最初の要素もつなげます。
例:

式: 結果:
cycle([1, 2, 3, 4, 5]) [[1, 2], [2, 3], [3, 4], [4, 5], [5, 1]]





3つの組合せを作る: triples(<list>)



説明: この演算子は、リストに含まれるすべての要素から3つずつを組み合わせた部分リストを要素とするリストを作ります。

例:

式: 結果:
triples([1, 2, 3, 4]) [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3,4 ]]





2つのリストの直積を作る: directproduct(<list1>,<list2>)



説明: この演算子は2つのリストの直積を作ります。ここでいう直積とは、 <list1> の要素を第1成分に、 <list2> の要素を第2成分とした、すべてのペアからなるリストです。

例:

式: 結果:
directproduct([1,2,3],["A","B"]) [[1,"A"],[1,"B"],[2,"A"],[2,"B"],[3,"A"],[3,"B"]]







入れ子リストの平坦化: flatten(<list>)



説明: この演算子は、リストが入れ子になっているときに、その入れ子を平坦化します。第2の入れ子を解除して平坦化したリストを返します。修飾子を使うと、再帰的な操作が可能です。また、平坦化のレベルを制御できます。

 この演算子は、2つのリストの直積を作るのと似ています。直積は、<list1>の要素を第1成分に、 <list2> の要素を第2成分にしたリストを作ります。

修飾子: 修飾子 levels は、"all" ですべてを平坦化します。 整数を与えるとその回数だけ再帰的に平坦化します。 flatten(...,levels->1) は修飾子を付けない場合と同じです。

例: 次のリストを用意します。

list=[[1,2],[3,[4,5],[6,[7,8]]],6];

このリストに対して平坦化を行なった結果は次の通りです。

式: 結果:
flatten(list) [1,2,3,[4,5],[6,[7,8]],6]
flatten(list,levels->0) [[1,2],[3,[4,5],[6,[7,8]]],6]
flatten(list,levels->1) [1,2,3,[4,5],[6,[7,8]],6]
flatten(list,levels->2) [1,2,3,4,5,6,[7,8],6]
flatten(list,levels->3) [1,2,3,4,5,6,7,8,6]
flatten(list,levels->"all") [1,2,3,4,5,6,7,8,6]







順序


次の演算子はリストに含まれる要素の順序を変更します。


逆順にする: reverse(<list>)



説明: この演算子は、 <list> の要素を逆順にします。

例:

式: 結果:
reverse([1, 2, 3, 4]) [4, 3, 2, 1]





並べ替え: sort(<list>)



説明: CindyScript においては、すべての要素はどんな2つの要素でも比較できるような自然な順序を有します。2つの要素は等しいか、どちらかが大きくなります。実数では通常の数の順序です。文字列では辞書順です。複素数はまず実部の順序で並べ、実部が同じなら虚部の順序になります。 リストは、最初の要素を比較します。さらに、慣例として次の順序があります。

ブール値 < 数 < 文字列 < リスト


例:

式: 結果:
sort([4.5, 1.3, 6.7, 0.2]) [0.2, 1.3, 4.5, 6.7]
sort(["one","two","three","four","five"]) ["five","four","one","three","two"]





並べ替え: sort(<list>, <expr>)



説明: この演算子は、リストの各要素を <expr> の内容によって評価し、その結果に従って並べ替えます。

例:

式: 結果:
sort([-4.5, 1.3, -6.7, 0.2], abs(#)) [0.2, 1.3, -4.5, -6.7]
sort(["one","two","three","four","five"],length(#)) ["one","two","four","five","three"]





並べ替え: sort(<list>, <var>, <expr>)



解説: sort(<list>, <expr>)と同じですが、 <var> を実行変数とします。



リストの要素を単一化した集合(set)を作る: set(<list>)



説明: この演算子は、リストのすべての要素を分類し、同一のものを取り除いて並べ替えます。すなわち、リストをオブジェクトの集合とみなして唯一の表現にします。演算子 concat, remove, common とともに用いて、集合の表現とすることができます。
例:

式: 結果:
set([3, 5, 2, 4, 3, 5, 7]) [2, 3, 4, 5, 7]
set([3, 5, 2]++[4, 5, 2]) [2, 3, 4, 5]
set([3, 5, 2]~~[4, 5, 2]) [2, 5]


Contributors to this page: Akira Iritani .
Page last modified on Wednesday 03 of August, 2011 [01:57:11 UTC] by Akira Iritani.

The content on this page is licensed under the terms of the License.


Menu
free viagra samplehentai girlsmature pussymilfseeker cialis samplescam clip movie nude webcammother incest order viagra online cialis ukanime rapeparis hilton phone numbers viagra alternatives cialis forum cialis free samplehot girls in pantiesmonster of cocks discount cialis cilias free viagra samplesfree chat rooms cilia structurefree cartoon sex comics buy cialis order viagrafree adult videosplump girl gallerypantyhose gallerycum on her face cheapest cialisbisexual moviestampa bukakehuge black cock thumbnails buy cialis onlineporn star cialis drugwomen having sex cheap generic viagra alternative to viagra natural viagra cheap viagraoral sexteen webcam strip videosnude spanish girlserotic sex cams movies viagra side effectscartoon adultdisney sex animenude blonde hairygang bang swinger cialis viagrabisexual free moviesgay twinkswebcam chat live xxxyoung teens order cialislatina girls thongscum loversjapanese girl viagra cheapyoung japanese girlsmr chews asian beavergangbang squadshoshone indiansmature wiveslive webcam chat girlsfree ebony viagra on lineasian ladyboysteen boys viagra pillsself bondage techniques cailisincest familyfree ebony cheap cialisgay amateur cialis genericbusty asian viagra onlinemature breasts viagra for women free viagrabig boobies cialis generic viagragloryhole gaylatinas in thongs female viagraindian tits viagra 6 free samplesamateur upskirt viagra alternativefree xxx video cialis online discountgalleries of teen girls cialis dosage cheap generic cialisparis hilton pornopussy cat dollsbrutal sexgay peopleblack milfsno tits discount viagrablonde hairy pussyshemale animefree hardcore moviesmom strips for sonfat titscelebrity legsdouble anal levitra vs cialis cialis tadalafil cialis cheapgay bdsmcelebrities exposed viagra generic alternatives to viagra viagra canadabestialitypink porn stars viagra jokesclips of teen sexchicks suck horse cock online viagrasex with horsespainful analglory holes floridafree american bukkake cialis online buy viagrabig cock cum free cialisteen gay porn cialis side effects herbal viagra best price viagra purchase cialis cialis soft tabs cialis vs viagrafree fat girl webcamfree porn movie clipsoral penis suckingebony hardcore viagra pricepantyhose crossed legs cialis and levitralesbiennesblonde boobs buy viagra online