問題タブ [difference-lists]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1288 参照

list - Prolog差分リストのテスト

私は違いのリストがどれほど大きいかについて読んでいて、本からいくつかの例をテストしたいと思っていました。ただし、たとえば、append([1,2,3]、[4,5]、X)と同じ方法でリストを入力として渡すことはできないようです。ここで、X = [1,2,3、 4,5]。不思議なことに、私が調べた本でこれについて言及しているものはありません。

私はswiplでコードを実行していて、違いの追加述語をテストすることに興味があります。

および「リストの最初の要素をローテーションする」述語:

任意のアイデア、swiplでこれらの述語をテストするにはどうすればよいですか?

0 投票する
3 に答える
826 参照

sorting - 1回のパスでリストのクイックソートを実行することは可能ですか?

私はhaskellを学んでいて、私が見る関数の定義は次のとおりです。

リストを3回ではなく、1回トラバースするだけで書き込むことはできますか?

0 投票する
7 に答える
35865 参照

list - Prolog でリストを平坦化する

Prolog を使って数日しか経っていません。私はいくつかのことを理解していますが、これは本当に私を混乱させます。

リストを受け取ってそれを平坦化する関数を書くとします。

この関数は、リストの内部構造を取り出します。

これは私がこれまでに持っているものです:

今、これは私が呼び出すときに動作します:

しかし、入力したリストがすでにフラット化されているかどうかを確認するために呼び出すと、次falseの代わりにが返されtrueます。

一方では機能するのに、他方では機能しないのはなぜですか? 非常に単純なものが欠けているように感じます。

0 投票する
2 に答える
703 参照

prolog - Prolog ファンクターを差分リスト付きのファンクターに変換する

Prolog (SWI) の宿題に取り組んでいますが、これを行う方法がわかりません。

私はファンクターを持っています:

これは、与えられたリストが回文であるかどうかを示します。

宿題として、差分リストを使用する場合と使用しpalindrome/2ない場合のファンクターを作成する必要があります。append/3

差分リストが の形式であることは知っていますが、[Y|X]-Xこれを使用する方法と、これが追加ファンクターをどのように置き換えることができるかがわかりません。

誰かが私にこれを説明してもらえますか?

0 投票する
5 に答える
1309 参照

lisp - 最初にアトムを並べ替え、次に LISP のリストからサブリストを並べ替えるには

私は LISP でこの宿題を持っています。ここでは、リストからアトムとサブリストを整理する必要があります。これは簡単な作業だと思いますが、私はあまりプログラマーではないので、理解するのにかなり時間がかかります。

私はこの番号のリストを持っています:

そして、自分のタスクを正しく理解していれば、次のようなものが得られるはずです:

これまでのところ、アトムやサブリストを数える方法しかわかっていませんが、それは必要ありません。

また、サブリストのみ、アトムのみ、または空のリストのみがある場合でも、その関数は正しく機能するはずです。

誰かが私に例を挙げてくれるでしょうか?

前もって感謝します!

0 投票する
2 に答える
6589 参照

algorithm - Haskell:二分木を平らにする

後者の処理のために、バイナリツリーをリストにフラット化することを考えていました。

最初は(++)左右の枝をつなぐことを考えましたが、最悪の場合はO(n^2)時間がかかると思いました。

(:)次に、線形時間で前に追加するために使用して、リストを逆方向に作成することを考えました。ただし、このリストをfold-like関数に送信すると、ツリー全体がトラバースされるまで待機してから折り畳みを開始できるため、listfusionを使用できないと思いまし

それから私は次のことを思いついた:

これはO(n)時間内に機能し、「スタックスペース」はツリーの最大の深さに比例するだけで、消費機能と融合できますか(つまり、中間リストが削除されます)?これは木を平らにする「正しい」方法ですか?

0 投票する
1 に答える
1078 参照

prolog - プロローグの違いリストとzipWith

私はzipWith関数を持っています:

正常に動作しますが、差分リストに対して実行したいので、追加しました

しかし、私がテストを実行すると

ローカルスタックからimというエラーが表示されますが、何が間違っていますか?

0 投票する
2 に答える
3542 参照

performance - Haskellの通常の連結よりも差分リストの方が効率的であるのはなぜですか?

私は現在、オンラインでLearn you a Haskellの本を読み進めており、一部のリストの連結は非効率的である可能性があることを著者が説明している章に到達しました。たとえば、

おそらく非効率的です。著者が思いついた解決策は、次のように定義された「差分リスト」を使用することです。

DiffList場合によっては、単純な連結よりも計算効率が高い理由を理解するのに苦労しています。誰かが私に簡単な言葉で上記の例がそれほど非効率的である理由を説明できますか、そしてどのようにDiffListこの問題を解決しますか?

0 投票する
3 に答える
1627 参照

prolog - 「自由記述式リスト」と「相違リスト」の違い

「自由回答リスト」と「差分リスト」の違いは何ですか?

0 投票する
2 に答える
1078 参照

prolog - 差分リストが不完全

不完全なリストを差分リストに、またはその逆に変換したい。

これは、通常のリストを差分に変換するコードです。

どうすれば他の方向に進むことができますか?