問題タブ [functional-programming]

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

functional-programming - 関数型プログラミングの利点は何ですか?

関数型プログラミングの利点は何だと思いますか? そして、それらは今日のプログラマーにどのように適用されるのでしょうか?

関数型プログラミングとOOPの最大の違いは何ですか?

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

functional-programming - スキームのリスト内包表記ライブラリ?

Common Lisp ( incf-cl )用のリスト内包表記ライブラリがあることは知っていますが、それらが他のさまざまな関数型 (および非関数型) 言語 (F#、Erlang、Haskell、および C#) でネイティブにサポートされていることも知っています。スキームのリスト内包表記ライブラリ?

incf-cl はマクロを使用したライブラリとして CL に実装されています。同じ手法を使用して、Scheme 用のライブラリを作成することは可能ではないでしょうか?

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

f# - F# での全文検索エンジンの例?

F# で全文検索エンジンを構築する方法の良い例 (Web サイトまたは本) はありますか?

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

c++ - c++ ブースト ラムダ ライブラリ

ブーストラムダライブラリを使用してプログラミングを開始する最良の方法は何ですか.

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

ajax - AJAXWebUIを自動的にテストするときに遅延を使用する代わりの方法

私はまもなく、Webサービス(WCF)から生成された多くのコンテンツを含むAJAX駆動型のWebページに取り組んでいます。

私は過去にこの種のことをテストしましたが(そしてそれは簡単であることがわかりました)、このレベルの動的コンテンツではテストしませんでした。

Visual Studio2008を使用して.NET3.5で開発しています。このテストは、次の場所で行うことを想定しています。

  1. TestDriven.NET
  2. MBUnit(これはユニットテストではありませんが)
  3. ブラウザを制御するためのある種の自動化ツール(おそらくSeleniumですが、SWEAまたはWatinかもしれません。IE、Firefox、そしておそらくOperaとSafariを考えています)。

以前は、ブラウザをテストするときに遅延を使用していました。私はそれをするのが特に好きではなく、それは時間を無駄にします。

待機を使用するよりも、物事をより良く行うためにどのような経験と実践がありますか。たぶん、テストを実行するためのコールバックとプログラミングの機能的なスタイルを導入しますか?


注1.最初の3つの返信を確認した後の詳細。

1)Alan、Eran、marxidadに感謝します。あなたの返事は、うまくいけばあまり時間をかけずに、私の答えを得る道に私を導いてくれました。

2)もう1つの詳細は、jQueryを使用してAjaxを実行しているため、これはAsp.NETAJAXに組み込まれていません。

3)状況をうまく説明している記事を見つけました。http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/からです

3.1) Seleniumサンプル(これと次のWatiNのコードサンプルは元のWebページ(IEまたはFirefoxのいずれか)に表示されないため、それらを抽出してここにリストしました。)

3.2) WatiNサンプル

3.3)これらの、明らかに同等のサンプルを見ると、WatiNサンプルが待機を抽象化していることがわかります。

3.4)ただし、 http: //watinandmore.blogspot.com/2008/01/using-watin-to-test-select-lists-in.htmlに記載されているように、WatiNはAjax呼び出しによって変更された値の追加サポートを必要とする場合があります。その記事では、次のように、変更されたイベントを合成するために使用できる追加のフィールドがページに与えられています。

4)私が求めているのは、合成されたイベントを使用せずに、WatiNコードに表示されるようなことを行う方法です。これは、変更されたイベントなどのイベントに直接フックする方法である可能性があります。テストのコーディング方法が変わる可能性はありますが、コールバックにも問題はありません。また、C#3、VB 9、およびF#の新機能の影響が浸透し始めたときに、テストを作成する別の方法が見られると思います(そして、それを探索してもかまいません)。

5)marxidad、私のソースにはWebAiiからのサンプルがなかったので、この興味深い見た目のツールについてコメントはありません。


注2.2008-09-29。このページから独立したフィードバックの後。

5)上記のWatiNサンプルコードのより完全なソースを取得しようとしました。残念ながら、それはもう利用できません、リンクは死んでいます。そうしていると、おそらくWebページと自動化ツールの間でマッピングされるモデルであるDSLの話に気づきました。詳細はわかりませんでした。

6)WebAiiの場合、次のようなコード(テストされていません)を使用することが提案されました。

6)コードから、いくつかのフレームワークで待機と遅延を明確に回避できますが、WatiNが自分に適しているかどうかを確認するためにより多くの時間を費やす必要があります。

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

functional-programming - SML のプロトタイピング関数

2 つの関数 と がfありg、これらは相互に再帰的に呼び出します。残念ながら、 をf呼び出すとg、まだ宣言されていないため、「バインドされていない変数」エラーが発生します。SML/NJ でこの関数をどのようにプロトタイプ化できますか (または同等の語彙が何であれ)。

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

generics - Lua 関数の署名を判別する方法はありますか?

最近、Lee Baldwinが汎用の可変引数 memoize 関数の書き方を示しました。必要なパラメーターが 1 つだけの、より単純な関数を返す方がよいと考えました。これが私の総偽の試みです:

明らかに、select('#', ...)このコンテキストでは失敗し、とにかく私が望むことを実際には行いません。memoize内でfが期待する引数の数を知る方法はありますか?


確実にわかっている場合は、「いいえ」で結構です。2 つの別個のmemoize関数を使用することは大したことではありません。

0 投票する
6 に答える
19390 参照

haskell - 実世界で関数型プログラミングをどのように使用できますか?

関数型言語は、状態を排除することでバグを回避できるだけでなく、スレッド数を気にすることなく自動的に簡単に並列化できるため、優れています。

Win32開発者として、アプリケーションの一部のdllにHaskellを使用できますか?そして、私がそうする場合、私のために自動的に取られる本当の利点はありますか?もしそうなら、私にこの利点を与えるものは何ですか、コンパイラ?

F#は、複数のコアとCPUにまたがって作成した関数を自動的に並列化しますか?タスクマネージャーのスレッド数が増えるのを見たことがありますか?

基本的に私の質問は、Haskellを実用的な方法で使い始めるにはどうすればよいのかということです。そうすれば、実際にいくつかのメリットが見られますか?

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

f# - 将来、F# が他の .Net 言語よりも最適化される可能性はありますか?

Microsoft は、VM の実行時、またはおそらくコンパイル時に、プログラムが関数型言語で構築されたことを検出し、自動的にそれをより適切に並列化できるように F# プログラムを作成できるようになる可能性はありますか?

現在、シングルスレッドプログラムとして構築されたプログラムをマルチスレッドプログラムとして自動的に実行しようとするような努力はないと思います。

つまり、開発者は単一のスレッド化されたプログラムをコーディングします。そして、コンパイラは、必要に応じてミューテックスと同期を備えたマルチスレッドのコンパイル済みプログラムを吐き出します。

これらの最適化は、タスク マネージャーのプロセス スレッド カウントで表示されますか、それともそれよりも低いレベルでしょうか?

0 投票する
8 に答える
18146 参照

javascript - 関数型言語としての Javascript

関数型プログラミングの概念を理解しようとしています。

私は何年もの間、Web アプリケーションのクライアント側スクリプト作成に Javascript を使用してきましたが、プロトタイプの使用を除けば、すべて単純な DOM 操作、入力検証などでした。

最近、Javascript が関数型プログラミングをサポートする言語の 1 つであることをよく読んでいます。

私は Javascript に精通しており、経験もあるので、Javascript を使用して関数型プログラミングを学習することを好みます。主要な機能概念により集中でき、完全に新しい構文に行き詰まったり気を散らされたりすることがなくなると思います。

要約すると、Javascript は関数型プログラミングの概念を学ぶのに適した選択肢でしょうか? Javascript のどの機能が関連し、関数型プログラミングをサポートしていますか?