問題タブ [maybe]
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.
haskell - splitAt Haskell と組み合わせた elemIndex
私はHaskellにかなり慣れていないので、次の問題を解決する方法がわかりません。
リストと要素を取り、入力要素の後のリスト内の他のすべての要素を削除する次の関数「ca」を実装する必要があります。
関数の型を変更することは許可されておらず、これまでのところ次のコードを思いつきました。
これにより、次のエラーが発生します。
このエラーが発生する理由はわかりましたが、修正方法はわかりません。どんな助けでも大歓迎です。
haskell - 計算クエリ、Maybeモナドでの評価について
現在、モナドを使った計算の基礎を学んでいます。私はコードのスニペットを調べており、それらが何をするかはわかっていると思いますが、明確にする必要があるかもしれません. これには Maybe モナドのインスタンスが含まれます。
末尾を計算しようとする関数と、リストの先頭を計算しようとする関数があります。以下の関数は、リストで呼び出されたときに同等の結果を生成します[1,2,3,4,5] = Just 3
この関数func3
は、余分な計算ステップを 'スキップ' しているように見えますfunc2
。func3
計算の結果を受け取り、それを下のテール計算に送り、テールを計算し、その計算の結果を下の関数に渡し、ヘッドを計算するというのは正しいですか?
もしそうなら、なぜfunc2
最初の計算の結果を無視する必要があるのでしょうか? myTail xs
計算を実行してから、その値を関数に渡し、末尾の計算の結果ではなく初期リストを使用するように私には思えます。
したがって、これはそれぞれを説明するための単なる冗長な手順a, b, c
ですか? func3
も と同等だと思いますがfunc1
、最上位の計算のみが ですa
。
どうもありがとうございました。
haskell - Haskell の "fromJust" と "Just ="
ハスケル初心者です。Haskell のライブラリからこの例を理解しようとしています。diagrams
具体的には、次のような行があります。
Just t = <thing>
<thing>
タイプはどこですかMaybe (Tree a)
これが何をしているのかわかりません。から値を取得する必要があることは理解していますMaybe
。そのコード行を次のように置き換えました
t = fromJust <thing>
そしてそれは同じように機能します。2 つの行に違いはありますか?最初の行が何をしているのか、誰か説明できますか?
haskell - Haskell - 多分/ちょうど再帰
モナドに関するいくつかの投稿やブログを読みましたが、おそらく、ただ、何もありませんでした..しかし、実際には理解できませんでした:/ 指定されたコードでは、「latestActivity」関数を実装する必要があります。私の考えではうまくいくはずですが、「Just」を正しく使用する方法がわかりません。誰かが私を助けることができるかもしれません。
typescript - 多分TypeScriptのモナド
TypeScriptでMaybeモナドで遊んでいます。概念についての私の理解はあまりよくないので、フィードバックや提案を歓迎します。JS の例はたくさんありますが、より厳密に型付けされたものを探しています。
使用法は次のようになります。
if/with/return は予約語なので、最後に F を追加しました..
これまでのところ、私は持っています:
haskell - プラン B、または Maybe の >>= の反対は?
2 つの関数を考えてみましょう。
この関数は、 そうでない場合にのみの結果で実行>>=
されるように機能します。つまり、結果を出すにはとの両方が必要です。f >>= g
g
f
Nothing
f
g
私はパーサーを実装していますが、私のレクサーはこれとは逆の利点があることに気付きました。あれは:
つまりf
、試行して失敗した場合はg
、バックアップ プランとして試行します。lexer では、トークン タイプを現在の入力と一致させようとすることを意味し、失敗した場合は別のトークン タイプと一致させようとします (最終的にはすべてのトークン タイプにチェーンされます)。
Hoogle で検索しても、そのような機能はありませんでしたが、私には、このような機能は多くの場所で役立つようです。
planb
したがって、私の質問は、使用すべきバリアントが既に存在するかどうかです。そうでない場合、私は何か特別なことをしているのでしょうか?また、私が望むものを達成するためのより良い方法はありますか?
PS 私はそのような関数が一般的に s にとって意味があるかどうかを考えましMonad
たが、それは私の外ではあまり意味がありませんMaybe
。