[解決済み] GHCiで関数の型宣言を明示的に行うには?
2023-06-01 18:33:40
質問
この関数に相当するものをどのように定義すればよいのでしょうか? 学習するアハスケール から取ったもの)をGHCiの中で定義するには?
import Data.List
numUniques :: (Eq a) => [a] -> Int
numUniques = length . nub
型宣言がないと、GHCiは関数定義を受け付けますが、役に立たない型になってしまいます。
Prelude Data.List> import Data.List
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int
結果として得られる関数は、パラメータとして単位のリストのみを受け取ります。
GHCiで型宣言を提供する方法はありますか?あるいは、型宣言を必要としない、このような関数を定義する他の方法はありますか?
GHCiのガイドに明らかな手がかりがなく、以下のような式で実験してみました(無駄でした)。
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int
どのように解決するのですか?
<ブロッククオートGHCiで型宣言を提供する方法はありますか?
let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub
<ブロッククオート
あるいは、このような関数を定義するために、型宣言を必要としない別の方法があるのでしょうか?
で単相性制限をオフにすると
-XNoMonomorphismRestriction
を使えば、正しい型が推論されます。
関連
-
[解決済み】Haskellでの挿入ソート
-
[解決済み] エラー haskell: スコープ内にありません。どういう意味ですか?
-
[解決済み】<input type="file">でファイル形式を制限する?
-
[解決済み] ハスケル Where vs. Let
-
[解決済み] 無限リストでのfoldlとfoldrの動作
-
[解決済み] Haskellデータ型のメモリフットプリント
-
[解決済み] Haskellってなんで流行ってるの?[クローズド]
-
[解決済み] HaskellのComonad型クラスとは何ですか?
-
[解決済み] fixの使い方、効果について教えてください。
-
[解決済み] 難読化されたHaskellのコードはどのように動作するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 一般的に `{- |` で始まるHaskellのコメントは何を意味するのですか?
-
[解決済み] Haskellで "length "関数を使用しない場合のリストの長さ
-
[解決済み] Haskellで大規模設計?[クローズド]
-
[解決済み] Haskellは実世界で何に使われているのか?[クローズド]
-
[解決済み] フリーモナドとは何ですか?
-
[解決済み] Haskell における `mod` と `rem` の違い
-
[解決済み] Rank2Typesの目的は何ですか?
-
[解決済み] Haskellプログラムのパフォーマンス解析ツール
-
[解決済み] fixの使い方、効果について教えてください。
-
[解決済み] MonadPlus, Alternative, Monoidの型別は?