問題タブ [function-composition]

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 に答える
6036 参照

haskell - 逆構文の関数合成

f最初と2番目に応募したい場合はg、次のように書く必要があります。

関数を逆の順序で記述できる別の標準構文はありますか?

私は自分の構文を発明できることを知っています:

次に、次のように使用します。

しかし、私はむしろ標準ライブラリ機能を使用したいと思います。

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

f# - タプル関数合成

なぜこれが気になる

エラーを与える

'Equals' という名前のアクセス可能なメンバーまたはオブジェクト コンストラクターは 1 つの引数を取らない

しかし、これは機能します

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

scala - Scala におけるメソッド、関数、部分適用関数の関数合成

スタック オーバーフローの質問Compose と andThen の方法にいくらか似ていますが、私は Twitter のScala Schoolチュートリアルに取り組んでいましたが、コメント投稿者が抱えていたのと同じ問題にすぐに遭遇しました (問題が解決したと思って寝たので、これは素晴らしいことでした)。

チュートリアルでは、次の 2 つのメソッドを定義しています。

Scala の新しいバージョンでは、 composeを次のように呼び出すことはできませんaddUmm(_).compose(addAhem(_))。compose を呼び出します。実行に成功したので、満足して就寝しました。addUmmaddAhem

涼しい。問題は、メソッドを構成できないことはある程度理にかなっていますが、私が知っている値で同じことを評価すると、次のようになりFunction1ます。

さて、その最後の行は、今回はメソッドではなく関数の部分的な適用ですが、元の質問と同じエラーを吐き出します。元の質問の回答の 1 つ (上位にランク付けされていますが、受け入れられた回答ではありません) は、部分適用がどのように展開されるかに関係していることを示唆しているように見えますが、その説明は何ですか?

Scala の初心者にとって、両方の場所a(_).compose(b(_))を明示的に指定しても推論器が間違っているという事実は、やや混乱を招きます。_: Stringa.compose(b)

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

haskell - Haskellモナドバインド演算子の混乱

さて、私はHaskellプログラマーではありませんが、Haskellの背後にある多くのアイデアに絶対に興味を持っており、それを学ぶことを検討しています。しかし、私は正方で立ち往生しています。かなり基本的なように見えるモナドに頭を包むことができないようです。私は、モナドを説明するように求めるSOに関する100万の質問があることを知っているので、私を悩ませているものについてもう少し具体的に説明します。

この素晴らしい記事(Javascriptの紹介)を読んで、モナドを完全に理解したと思いました。それから私はモナドのウィキペディアのエントリを読んで、これを見ました:

ポリモーフィック型(M t)→(t→M u)→(M u)の結合演算。これは、Haskellが中置演算子>>=で表します。その最初の引数はモナディック型の値であり、その2番目の引数は最初の引数の基になる型から別のモナディック型にマップする関数であり、その結果は他のモナディック型になります。

さて、私が引用した記事では、bindは引数を1つだけ取る関数でした。ウィキペディアは2つ言っています。モナドについて私が理解したと思ったのは次のとおりです。

  1. モナドの目的は、さまざまな入力タイプと出力タイプを持つ関数を取得し、それを構成可能にすることです。これは、入力型と出力型を単一のモナディック型でラップすることによって行われます。
  2. モナドは、バインドとユニットという2つの相互に関連する関数で構成されています。Bindは、構成不可能な関数fを受け取り、入力としてモナディック型を受け入れ、モナディック型を返す新しい関数gを返します。gは構成可能です。unit関数は、fが期待する型の引数を取り、それをモナディック型でラップします。次に、これをgに渡すか、gのような関数の任意の合成に渡すことができます。

しかし、バインドの概念には関数という1つの引数が必要なので、何か問題があるはずです。しかし(ウィキペディアによると)Haskellのバインドは実際には2つの引数を取ります!私の間違いはどこにありますか?

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

haskell - 単項アクションで純粋関数を慣用的に整理するにはどうすればよいですか

今日は、モナド アクションで不必要に実行されているいくつかの純粋な関数を修正する日だと決めました。これが私が持っているものです。

これが現在の flagWeekEnds です。

flagHolidays同様のパターンに従います。toWorkDaysあるタイプを別のタイプに変更するだけで、純粋な関数です。

flagScheduled、およびflagASAPはモナド アクションです。単項アクションと純粋な関数を慣用的に組み合わせる方法がわかりませんflagWorkDays。純粋にされたとflagWorkDays仮定して、flagWeekEnds誰かが私を修正するのを手伝ってくれますか?flagHolidays

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

haskell - フォールディング、関数合成、モナド、そして怠惰、なんてこった?

私は困惑しています。私はこれを書くことができます:

出力は1です。それは次のように還元されるため、理にかなっています。

しかし、漠然と似たモナド手法を使用すると、同じようには機能しません。

これは当たりprelude.Undefinedます。私はそれが減少すると予想するので、これは奇妙です:

ただし、構成の順序を反転します。

予想される短絡を達成し、生成しNothingます。

2 つのアプローチを比較すると、リンゴとオレンジを比較することになると思いますが、その違いを説明していただけますか? f <=< gこれは のモナド類似体だと思っていましたが、思ったf . gほど類似していないようです。理由を説明できますか?

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

haskell - 2引数関数のチェーンを構成する

だから私はタイプの2つの引数の関数のリストを持っています[a -> a -> a]

リストを取得して、左側で構成された長さ+1の引数を取得する関数のチェーンに構成する関数を作成したいと思います。たとえば、[f,g,h]すべてのタイプ[a -> a -> a]がある場合、次のような関数を作成する必要があります。

また、それが役立つ場合、関数は引数で可換です(つまりf x y = f y x、すべてに対してx y)。

問題の関数の数がわかっていれば、リスト内包内でこれを行うことができます。これは、定義とほぼ同じです。それは、固定数の関数から動的な数へのストレッチであり、私は困惑しました。

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

ロジックは正しいパスに沿っていると思います。タイプチェックはしません。

前もって感謝します!

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

haskell - Haskell:特定のタイプの関数を一般的なタイプの関数で構成しますか?

私はGHCiで簡単なワンライナーを書いていて、マップで合計を作成しようとしました. 失敗した理由は、 map が一般的なタイプ [b] の出力を与えるのに対し、 sum は特定の入力 Num a => [a] を受け取るためだと考えました。ただし、 map 関数の出力が型 Num b => [b] であると仮定すると、このコードに問題はありません。

私は制限型宣言を書くことはうまくいくかもしれないと思っていました (GHCi でそれを行うことはできないと思いますが) が、それでもうまくいきませんでした:

次のエラーが表示されました。

これを行う方法はありますか?たぶん、明らかな何かが欠けているだけです(Haskellの新機能)。

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

c# - ラムダ式c#

ラムダ式を使って関数合成を行う方法を知りたいです。つまり、2つの関数f(x)とg(x)があります。ラムダ式を使用してそれらの構成をf(g(x))にする方法は?ありがとう

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

python - 構成機能と機能モジュール

Python 3.2 のドキュメントは、function を含むCollin Winter のfunctionalモジュールcomposeを参照しています。

compose() 関数は、関数合成を実装します。つまり、内部からの戻り値が直接外部に渡されるように、外部および内部の callable のラッパーを返します。

残念ながら、このモジュールは 2006 年 7 月以降更新されていません。代替品がないか気になります。

今のところ、compose関数だけが必要です。次の元のfunctional.compose定義は Python 3 でも有効ですか?

このSOの質問は多少関連しています。Python が の特別な構文をサポートする必要があるかどうかを尋ねますcompose