[haskell] タグが付いた質問
107 件の質問
0
票
0
回答
70
閲覧数
型付きラムダ計算の減算について
Haskellで型付きラムダ計算を実践しています
プログラムは下記URLにまとめています
https://onecompiler.com/haskell/444r6veer
一部を抜粋すると、まず本質問で重要な型として
type Id a=a->a
type Nat a=Id (Id a)
type Pair a=(a->a->a)->a
の3つがあります
Nat aは(...
1
票
2
回答
192
閲覧数
Haskellで「型が型クラスのインスタンスを持つ」という表現はなぜ使われるのか?
Haskellにおいて、ある型がある型クラスのインスタンスであるとき、その型について、その型、例えばリストはモノイドインスタンスを「持つ」という言い方をすると思います。どうしてこんな言い方をするのか教えてほしい。
リストはモノイドインスタンス「である」のであって、「持つ」という言い方がどこからでてきたのかわからない。
1
票
1
回答
137
閲覧数
リテラルの取り扱い方
Haskellの超初心者です.下記のようなプログラムを作成しました.
data Natnum = Zero | S Natnum deriving (Eq, Show)
c_1_1 :: Natnum -> Natnum
c_1_1 x1 = S Zero
その後,c_1_1 Zero と行えば S Zero と出ることは確認できます.
しかし,c_1_1 3 とすると,...
1
票
1
回答
134
閲覧数
Data.Type.Equality の定義の意味がわかりません
参考資料:
データ型の昇格(DataKinds拡張)|Haskellでの型レベルプログラミング
一般化された代数的データ型 (GADT)|Haskellでの型レベルプログラミング
How can I use :~: to determine type equality in Haskell? - Stack Overflow
上記を参考に下記のコードを書いてみました。
エラーにならない:
{-#...
2
票
1
回答
108
閲覧数
GADTs で型パラメータを使ってないのに書く必要があるのはなぜか?
Generalized algebraic data type - Wikipedia
に下記がありました({-# LANGUAGE GADTs #-} は私が足しました)。
{-# LANGUAGE GADTs #-}
-- A GADT
data Expr a where
EBool :: Bool -> Expr Bool
EInt :: Int ...
-1
票
1
回答
212
閲覧数
実行結果["1","+","8","^","4"]なんですが、["1","+","512"]みたいにべき乗だけ計算した結果を返したいのですがどのようにプログラムを修正すればいいでしょうか?
beki :: Int -> Int -> Int
beki x y = x ^ y
beki2 :: [String] -> [String]
beki2 [x] = [x]
beki2 (base : "^" : exponent : xs) = show (beki (read base) (read exponent)) : beki2 xs
...
0
票
1
回答
213
閲覧数
再帰的にべき乗を計算したいが、途中までしかできない
haskellでべき乗計算をしたいのですが、 現在は実行結果["8"] ["2","^",3"]までしか計算できません。 再帰的に["256"]を計算できるようにどのようにすればよいでしょうか
getLastThreeValues :: [String] -> [String]
...
1
票
2
回答
154
閲覧数
Haskellを使い、リスト内の数字をすべて掛け合わせるコードを書きたい
いま、学校の課題でHaskellを使ってタイトルにもあるようにリスト内の数字をすべて掛け合わせるコードを書いています。
例)[1,2,3,4,5] -> 120
現段階での僕のコードは以下のようになっています。
myproduct :: (Num a) => [a] -> a
myproduct[] = 0
myproduct(x:xs) = x*(myproduct xs)
...
2
票
2
回答
136
閲覧数
毎n番目の数字をリストから消したい
今Haskellを使ってタイトルでも書いたように毎n番目の数字をリストから消すコードを書いているのですがどうもうまくいきません。
例)
dropevery [0,1,2,3,4,5,6,7,8,9] 3
[0,1,3,4,6,7,9]
*2, 5, 8 と毎3番目の数字がリストから落とされ残った数字が表示されるコードです。
いま色々試しているのですがなかなかうまくいきません。
...
0
票
1
回答
151
閲覧数
PowerShell5.1が実行できる彩りのGHCi出力
少し前にこのコードを発見しましたが、ウィンドウズのPowerShell 5.1 を利用しているため、このコードを実行できませんでした。そこで、このコードの.ps1バージョンを作ることにして、 sed の代わりに -replace 演算子使ったものがこちらになります。
#!/usr/bin/env powershell
Write-Output "$([char]0x1b)[91m ---...
0
票
0
回答
109
閲覧数
HaskellにてGraphics.Glossを用いてウィンドウを表示させようとしたところ、エラーが出ました。
この記事のコメント欄にある通り、freeglut.dllをglut32.dllにリネームし、System32以下に置きましたが、エラー"user error (unknown GLUT entry glutInit)"が出ています。置く場所を間違えているのでしょうか?
1
票
1
回答
531
閲覧数
Haskellで型エラー: No instance for (Num [[t0]]) arising from the literal ‘1’
ある数がその要素に含まれているかどうかを判定する関数mを作成したいのですが、実行は出来るものの、実行したときに計算してくれません。
どこが間違っていますでしょうか。回答よろしくお願いします。
作成したプログラム:
m([],x)=False
m(as,x)=if memberOf(as,x) then True else False
memberOf(x,[])=False
memberOf(x,...
0
票
2
回答
251
閲覧数
Haskellの合成関数「insSort」の定義方法
並べ替え対象のリストを先頭の要素と残りの要素のリストに分けたとき、残りの要素のリストを並び替えたものに先頭の要素を挿入する関数insSortを、昇順に並んでいる整数リストasに、昇順を維持したまま新しい整数xを挿入する関数「insertSortedList(as,x)」を用いて作成したいのですが、何度試行を繰り返してもエラーメッセージが出てきてしまいます。
...
0
票
1
回答
538
閲覧数
エラーの意味がわかりません:Couldn't match type
昇順に並んでいる整数リストasに、昇順を維持したまま新しい整数xを挿入する関数interSortedList(as,x)を定義したいのですが、何回プログラムを実行してもコンパイルエラーが出てしまいます。
私は以下のようにプログラムしました。
insertSortedList([],x)=x
insertSortedList(a:as,x)=if x<a then x:a:as else ...
-1
票
1
回答
303
閲覧数
Haskellの素数判定でコンパイルエラー
Haskellで、値nが素数ならばTrueを、素数でなければFalseを返す関数primeを作成したいのですが、どのようにプログラムしていいのかわかりませんでした。
最初に要は、値nを2からn−1まで順番に割っていって、最後まで割り切れなければ素数であると判定できるということだと思ったので、以下のようにプログラムしてみました。
a>=2 && a<=n−1
prime(...