問題タブ [lifting]

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 投票する
1 に答える
286 参照

scala - 複数のステップでのscala quasiquotes文字列変数のリフティング

これは私が欲しいものです:

しかし、問題は、次のように、文字列変数で $x>$y という式を取得することです。

そして、次のように操作を実行したいのですが、

しかし、このリターン:

これは目的を果たしていません。$x と $yの代わりに、最後のステップで x と y の値を取得するにはどうすればよいですか。

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

haskell - この式に有効な型があるのはなぜですか?

をいじってみるとghci、たまたま式(*) 1 [1..5]が有効な型を持っていることに気付きました。

Num [t]どうやらそれは、エラーが発生するように、私には不可能に見えるものを含む、いくつかの型制約を持つリストです。

これはどのように式のタイプですか?ghciここでの:tコマンドがエラーを出さないのはなぜですか?

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

haskell - Haskell の State モナドで値を持ち上げる

学習課題として、Haskell で Sudoku ジェネレーター/ソルバーを作成しています。

私のsolve関数は a を受け取りますが、解決中に見つかった最大難易度も返すことができるように a をUArray返します。State Int (UArray ...)

これはこれまでのところ私の機能です(まだ非常に実験的な初期段階にあります):

ミュータブル配列に対してはまだ何もしていません。で型チェックをしようとしているだけですput 42が、現在次のエラーが発生しています。

0 投票する
0 に答える
204 参照

functional-programming - 関数型プログラミング用語: リフティング vs ファンクター/適用リフティング

私は関数型プログラミング ライブラリを作成しており、一連の関数に最適な名前を​​決定しようとしています。

関数はすべて関数を取り、別の関数を返します。返された関数の戻り値の型は入力関数とは異なりますが、パラメーターは変更されていません。

実装は次のとおりです。

  • <parameters> -> T|undefined=><parameters> -> Option<T> アピドック
  • <parameters> -> R|undefined <may throw>=><parameters -> Either<L,R> アピドック
  • <parameters> -> Promise<T><parameters> -> Future<T>(追加予定)

命名についていくつかの議論があり、それは私のライブラリのリポジトリでまだ進行中です.

問題は、「リフト」という用語を使用することが、私が説明した機能に適しているかどうかです。

それが適切ではない理由は、リフティングが最も頻繁に使用されるのは、ファンクターのリフティング (パラメーターの型と結果の型の両方のリフティング) を表すためです。だから..A -> B -> CF<A> -> F<B> -> F<C>。これは、これらの関数が行うことではありません。

ただし、scala は、まさに私と同じように「リフティング」用語を使用していることがわかります。

彼らが scala-land でこれにどのように名前を付けているかを調べたかったのですが..結果として...私が正しく理解していれば、彼らはそれがリフティングだと言っています: Scala での「リフティング」とは何ですか?

PartialFunction[A, B] はドメイン A の一部のサブセットに対して定義された関数であることを思い出してください (isDefinedAt メソッドで指定)。PartialFunction[A, B] を Function[A, Option[B]] に「持ち上げる」ことができます。つまり、A 全体に対して定義されているが、値が Option[B] 型の関数

一方、結果以外のすべてのパラメーターが持ち上げられる場合の持ち上げについては、次のように述べています。

関数 A => B をファンクターのドメインに「持ち上げる」。[..]「ファンクタへのリフティング」

あります => https://www.scala-lang.org/api/current/scala/PartialFunction.html#lift:A=%3EOption[B]

したがって、リフティングは一般的な概念であり、ファンクターのリフティングはそのサブカテゴリにすぎないことを意味します。また、haskell は「持ち上げられた型」と「持ち上げられていない型」について話しており、用語がより緩い方法で使用されていることを示唆しています。

一方、これはリフティングは「ファンクターリフティング」に過ぎないと言っています: https://stackoverflow.com/a/43596202/516188

私は自分のライブラリで「ファンクター」リフティングを提供しており、関数にliftA2liftApという名前を付けています。つまり、 「リフティング」と「適用リフティング」を区別しています。それは適切だと思いますか。そうでない場合、どのネーミングをお勧めしますか?

lift編集して、私の提案した命名を要約A->B->X<C>liftAますF<A>->F<B>->F<C>

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

reactjs - React で外部コンポーネントをクリックして、react-select の表示値を変更する

1 つの配列から、1 つのコンポーネント (Box.js) にリストとして表示し、別のコンポーネント (Search.js) の反応選択に格納します。どちらも親コンポーネント(trial.js)に属する同レベルの子です。

最終的に、リストからクリックするか、反応選択から変更/選択して、オブジェクトを表示したいと思います。イベント ハンドラーを親に持ち上げて、選択したオブジェクトを個別に表示することに成功しました。

ただし、onClick を onChange と同期できないようです。具体的には、クリック イベント ハンドラーで、選択したリストを太字にして、react-strap で表示されるアイテムを変更したり、その逆をしたりします。反応ホームページに示されているリフティング状態と同期イベント ハンドラーの例では、テキスト入力を使用していますが、これは私がやろうとしていることにはあまり役に立ちません..

親) Trial.js:

リストを持つ子)Box.js:

react-select を使用した子) remote.js:

選択したオブジェクトをレンダリングするための remote.js の子: