Saya memiliki fungsi yang mengubah [a, b, c, d, . . . ] ke [(a,b), (c, d), . . .]. Sekarang ini berfungsi dan ini kode untuk itu:
makeTuple :: [a] -> [(a,a)]
makeTuple [] = []
makeTuple [a] = []
makeTuple (x:y:xs) = (x,y): (makeTuple xs)
Sekarang hal berikutnya yang harus saya lakukan adalah ini: Menggunakan fungsi sebelumnya, ubah setiap tupel menjadi produk dari dua elemennya, menggunakan lipatan dan ekspresi lambda. Dan inilah yang saya punya:
productTuple [x] = foldl makeTuple [] [x]
Sekarang saya tidak yakin apakah ini tepatnya yang diminta dari saya. Saya tidak yakin apakah saya harus membuat fungsi terpisah dengan deklarasi tipe dan yang lainnya. Mungkin seseorang dapat memberi tahu saya apakah itu cara terbaik untuk melakukan pendekatan ini. Kode ini juga tidak berfungsi, dan saya tidak tahu mengapa, saya memerlukan bantuan untuk bagian ini. (perhatikan bahwa dikatakan menggunakan lambda, tetapi saya tidak tahu cara menggunakannya dengan benar, yang merupakan bagian lain yang memerlukan bantuan) Saya akan sangat menghargainya, terima kasih.
makeTuple
Anda? - person Willem Van Onsem   schedule 02.11.2017productTuple (x:xs)
danproductTuple []
. - person altschuler   schedule 02.11.2017foldl
yang memasukkan daftar, untuk membuat ulang daftar itu (jadi pada dasarnya fungsiid
)? - person Willem Van Onsem   schedule 02.11.2017