Makistos
10/22/2014 - 11:25 AM

A variation of the LOVE calculator. There are three versions of the actual calculator, they were provided as answers to my question at Quora

A variation of the LOVE calculator. There are three versions of the actual calculator, they were provided as answers to my question at Quora: http://www.quora.com/How-do-I-sum-numbers-in-lists-by-pairs-until-just-one-pair-is-left. To try them out, replace the function call on line 66. #haskell

Emmi-Maria Airamo
Erkka Häkkilä
Eulaalia Paasinen
Ante Viherä
Saamuel Siimes
Vappu Tuomisto
Per Paalosmaa
Titta-Mari Pellilä
Sarno Arhi
Sane Erkkinen
Jopi Manneri
Vaula Jalonen
Vivian Sydänmäki
Östen Annunen
Carolina Hinttu
Rainar Kuoppamäki
Aabraham Sokkola
Eski Urpola
Jenna Harjanne
Vesa Turtinen
Lothar Havas
Eni Parvela
Lene Ahtila
Alvi Pyykkö
Jani-Matti Mörkö
Ann-Christin Heimola
Kyösti Härkänen
Anna-Kristiina Raappana
Sofia Kitula
Mats-Olof Vuorela
Ristomatti Pyysalo
Kirsi-Margit Uimonen
Inna Huuhka
Serafia Niska
Brit Puuperä
Rupert Vaakanainen
Jurkka Arhila
Charles Kosonen
Greg Pöyhölä
Hanna-Linda Alajärvi
Erland Kivelä
Niko-Pekka Kukri
Evelyn Perankoski
Jose Kiskonen
Eeva Sinisalo
Benjami Pesonen
Marju Kunnala
Mirjam Salo
Sievä Poutiainen
Augusta Soikkeli
Bonita Muronen
Sirkka Nisso
Christian Naski
Dag Soramäki
Rosa-Maija Kettunen
Jemina Hiltunen
Thu Pentunen
Meeri Saaristo
Natasa Huhtala
Frans Yrjänä
Tuulia Kiimalainen
Aleksina Kataja
Klaus Iskala
Lars-Erik Vepsäläinen
Ritva-Liisa Saraste
Liida Kurkku
Marja-Sisko Kamppinen
Ylva Porkkanen
Oleksi Tervola
Thorstein Anttola
Yrja Viskari
Pepi Vanjoki
Selja Reinsaari
Bern Sinikurki
Hampus Arvonen
Juri Närvälä
Repe Kiimalainen
Jeanne Hyökki
Eevariitta Melleri
Cristina Hermo
Aksia Kuusiluoma
Sauli Paukkonen
Pepi Siili
Harri Hurskainen
Lilian Siltanen
Aasa Öörni
Mira-Tuulia Tuisku
Maria-Terttu Merjokari
Eija-Riitta Juppi
Pii Reinikka
Noora-Sofia Soraoja
Tähti Aittasalmi
Anne-Mari Ruskeala
Mina Isteri
Pekka-Juhani Palo
Simo-Pekka Keisari
Helli Ruokosalmi
Pekka-Tapio Eloharju
Vikke Saarivuori
Leivo Päivänurmi
Nita Palko
Jallu Reinikainen
Villu Haukka
Annamari Ernala
Dolores Siikala
Gabriel Hirvonen
Marie-Louise Pöntinen
Nea Meerilä
Jussi-Matti Saarenheimo
Jalmari Siltala
Telle Hietalahti
Annu Pehkonen
Jousia Lehtonen
Benjamin Leppälä
Mira-Tuulia Kujansivu
Väinö Tammisto
Anna-Mari Pajunen
Noomi Raiskio
Sanni Rantamäki
Joakim Puhakka
Matilda Hassinen
Filpus Kumpula
Raffu Ihalainen
Lempi Kekkonen
Rose Vahtola
Vilko Syrjä
Aari Inkinen
Atso Kannelmäki
Lars-Erik Rimmanen
Timo-Tapio Kotala
Sisu Arhosuo
Chistiana Lyyra
Mirella Latvala
Ulla-Kaija Pruikkonen
Uula Laari
Tuuli-Maria Paavilainen
Alvi Romppanen
Sirkka Karalahti
Kössi Kalervo
Deborah Somppi
Katarine Untamo
Johny Lukkarinen
Akseli Keskilä
Prita Ilmarinen
Tuila Inkinen
Mona-Liisa Rahunen
Juliaana Kyllönen
Ruut Kähönen
Hennamaarit Kainulainen
Melike Lavaste
Ull-Britt Kaikunen
Axa Kivijärvi
James Lampi
Akvilina Kuusisto
Aslak Pakkala
Joosef Eloharju
Björn Alahuhta
Rune Pentunen
Olivia Repola
Unna Nuotio
Esteriina Hepojärvi
Anni-Maija Karjunen
Carissa Kako
Niko Pahaoja
Arsi Vouti
Eira-Maija Lähde
Asa Taavettila
Timjam Lappalainen
Mona-Lisa Kataja
Iina-Maija Kontio
Kunnar Koivisto
Maria-Kaisa Soutkari
Anna-Reetta Alanen
Andrew Juuti
Antti-Jussi Rasva
Oivi Jompero
Jokke Mäkäläinen
Taneli Hyökki
Pontus Vahvanen
Marja-Sirkka Kulkula
Pasi-Pekka Sulkava
Lumia Laavi
Aari Pultti
Otteliaana Koukkula
Anne-Li Vilkkula
Erkku Virkkula
Helina Pentikäinen
Anja-Riitta Aronen
Aarna Marjala
Tinka Maunula
Ingri Turtia
Aivi Pösö
Beatrice Niskanen
Walborg Vuoria
Arimo Kallio
Emerik Kulppi
Sunna Sees
Rurik Hepojärvi
Aivo Rönkä
Jalmari Levola
Beth Saurio
Sten-Erik Vatja
Birte Helstelä
Ingmar Karmala
Bo Laakkonen
Henrik Jinni
Katharine Rekomaa
Philippus Alanen
Sohra Merelä
Mili Aura
Kaisa-Liisa Haikara
Artur Heponen
Inga-Lill Kurkela
Kreetta-Leena Ojennus
Merikki Ollila
Mirjami Vesala
Kustaa Simanainen
Anne-Carita Hietala
Cecilie Honka
Emmi-Maria Valjala
Marica Kataja
Ruth Yrjölä
Lilly Hyssälä
Ake Lampi
Puro Saarni
Kustu Kivi
Tarja-Helmi Valjakkala
Kikka Ranka
Leena-Marjut Lapeteläinen
Sheila Nurkkanen
Kia Isomäki
Tomo Penttinen
Tauvo Kiviranta
Soili-Maria Annunen
Menna Marras
Pirjo-Liisa Juvanen
Elli Suonio
Bjarne Kaijärvi
Tino Imppola
Vilko Katainen
Mons Honkapohja
Petri Kyyrä
Joni-Markus Saarakkala
Valentin Rivi
Herbert Nivel
Kondrad Kuparinen
Anna-Mari Kainulainen
Arsi Naula
Yngvar Litmanen
Herman Simolin
Janne-Pekka Turkia
Karlo Pensala
Glory Tiermas
Hele Pönniö
Elke Mäkäräinen
Miika-Markus Malmikivi
Maj-Leena Eräharju
Virmo Nikoskelainen
Vendula Tykki
Kunto Kivelä
Virpa Hyökki
Eija-Inkeri Alaoja
Ruusa Sorsa
Amy Aija
Jarna Lipponen
Ulla-Erika Liikanen
Jussa Pappi
Derek Järvi
Valva Leporanta
Lea-Kaisa Saarnio
Maria-Tiina Sinikantele
Hilel Kaikunen
Thea Ernamo
Annaleena Vihavainen
Melina Turkulainen
Eevald Ovaska
Leena-Marjut Arponen
Hasse Könnömäki
Klaara Suuronen
Miina Krapu
Antti-Einari Riikonen
Iisakki Roponen
Jaana Kieli
Samsa Kulokoski
Tuure Ahven
Jasu Karpo
Hilde Auvola
Evita Kesonen
Hanna-Riitta Ryytty
Einari Vahvonen
Erkko Alanko
Ulla-Maria Marjonen
Veera Lahna
Ebbe Pyyhkälä
David Isolammi
Pauno Kyynäräinen
Hilpa Pietikäinen
Juha-Heikki Sulkava
Minea Lallo
Grels Suokas
Torolf Aalia
Scott Ainonen
Axel Haapakorpi
Jörgen Veijonen
Janette Rahkala
Levi Jurvala
Riha Hietalahti
Birgit Lepistö
Rabbe Mattilainen
Yrja Rajamäki
Martinus Paakki
Janna Ahovaara
Sami-Mikael Kangassalo
Milja Hämäläinen
Sera Sola
Maija Helismaa
Marissa Holopainen
Aija-Leena Aunila
Ansu Teräsniska
Sinikukka Alkiomaa
Aino-Kaarina Saanila
Kustaa-Aadolf Miihkinen
Salla-Maaria Repola
Katrine Puuperä
Merja-Liisa Kesonen
Vilmo Lohkare
Sirppa Liimatainen
Riko Selänne
Junia Knihtilä
Reidar Parkkonen
Kati-Maria Hannula
Juha Pasila
Severi Alaoja
Ernesti Kuismanen
Maria-Leena Soini
Adelina Eskola
Dage Turkulainen
Douglas Virkkula
Sari-Sirkka Lerssi
Peppina Kurikka
Catrina Niemistö
Onni Karvinen
Iisak Aitomaa
Ollipekka Pakkala
Bilund Palola
Malva Laitinen
Ville-Pekka Hietakuja
Eikki Hietapuro
Gloria Ruunala
Pirtta Ruutu
Britta Havukainen
Tuukka Harjus
Laimi Päivälä
Carissa Mattilainen
Hilpe Alasalmi
Mallis Taalikka
Nancy Laine
Tuomo Kuusinen
Siviä Korva
Olle Aijala
Auriina Urhonen
Helly Ryhänen
Teklai Kouhia
Maryann Litma
Roger Tolvanen
Jone Savio
Jopi Karalahti
Jasmini Särönen
Sirli Manneri
Hansu Viljala
Katharina Vuokola
Onni Rissanen
Soila Juvala
Vuokko Pirttikangas
Sophia Mato
Germund Ääninen
Etel Pervonen
Ivan Leivo
Marika Havukainen
Joonas Mylly
Akatius Varjus
Mia Kuparinen
Mariette Lähde
Mimosa Kyllönen
Hildur Mähönen
Alexandra Mansikka
Margareetta Jaakonmaa
Hena Reijonen
Sulevi Lind
Leija Paukkola
Marjetta Tujula
Helge Saurinen
Rikupekka Kotanen
Oona Helppolainen
Jaana-Maria Pärssinen
Salli Valjakkala
Lottaliisa Eskola
Talia Kuhanen
Vire Rasila
Leopold Harteva
Hanna-Riikka Kuningas
Dorotea Ojanne
Stina Ropilo
Vesta Laurila
Torbjörn Särkkälä
Roswita Varjus
Brooke Sillanpää
Viljami Pappi
David Piispa
Toini Ervola
Arhippa Herttua
Kristalli Mielonen
Thor Molari
Aune-Maria Somppi
Noora-Ulriikka Jussi-Pekka
Jelena Kalvo
Verner Kurki
Anjuli Rekonen
Pessi Toropainen
Lothar Tapola
Katharine Kumpula
Debora Äijö
Piola Samulin
Jere Sariola
Anna-Kaisa Huovila
Hessu Poropudas
Tania Laukkala
Mari-Elina Hukkala
Toomas Käyhty
Charles Nurkkala
Fanni Linnala
Margareetta Untola
Timo-Juha Moisio
Anto Kaikkonen
Elke Ruuskanen
Niilo Lipponen
Birgi Kärki
Minnaliisa Hakkarainen
Hilve Näkyvä
Tanja Avonius
Menna Ahtela
Manda Pervo
Francesca Pervola
Daria Siltala
Ana Autio
Kielo Markka
Ertta Harjus
Rane Honkapohja
Akuliina Leinonen
Riha Puroja
Ellaliisa Kinnaslampi
Jaska Suomalainen
Leonora Lepola
Pentti Pylkkänen
Curt Matikainen
Marjaliisa Roos
Tea Samulin
Pekka-Juhani Kivistö
Justiina Sokkola
Mathilda Ernola
Tyko Haima
Soija Äärynen
Aasa Uotila
Leanna Saareke
Karelia Kokkonen
Marika Kynsilehto
Ontrei Pöyry
Tero-Pekka Hento
Taino Kerttula
Liisa-Maria Keihäs
Helke Kotila
Heda Syrjälä
Bernhard Kesola
Susann Laurio
Helena Salonen
Anne-Maija Hentinen
Merva Aula
Norman Havimäki
Anerva Yrjönen
Pekka Paajanen
Marva Isomäki
Hennariina Lindén
Tulikukka Kunnasluoto
Miiku Ravattinen
Aino-Maija Häkämies
Nestori Saarenheimo
Annikka Kuosmanen
Catrin Partapuoli
Benjami Ramsi
Claes Laulaja
Melisse Kallioniemi
Uno Filppula
Sameli Oikkonen
Heini-Maria Paukkola
Josua Suomalainen
Holger Käsi
Marco Muhonen
Mico Rautoja
Georgij Tukiainen
Milda Viitanen
Margereta Itälä
Sabine Toikkanen
Riikkamaria Ruuskanen
Miiro Alatalo
Selja Kuoppamäki
Helmeri Arvo
Arita Kare
Philippa Marras
Ulla-Erika Pahaoja
Kerkko Hakkarainen
Aleksaana Kultanen
Signe Pursiainen
Katrina Tyrmi
Valpori Savi
Markitta Kanala
Ramona Linnola
Kino Sarjula
Justus Hakkarainen
Emmo Pekkola
Seija Prättälä
Reelika Kukkamäki
Gitte Roos
Patrik Tyrninen
Henric Holappa
Wille Pajala
Annika Möttönen
Tommi Pösö
Iippo Takkala
Maxim Moisio
Nikko Mieto
Saku-Antti Ahmala
Frank Ristamäki
David Untamo
Elmer Suomalainen
Aleksaana Jakkila
Mirja-Leena Kamppinen
Feija Piispa
Cecile Hurskainen
Flora Pentikäinen
Nikke Ahvonen
Kalle-August Hoikkala
Maria-Terttu Jussi-Pekka
Aine Sariola
Jussi-Pekka Kortesjärvi
Terttu-Liisa Tuikka
Milla-Marjut Rahunen
Sten Suonio
Malin Hautamäki
Kanerva Häkkilä
Silja Muukka
John Hukkinen
Anastasia Rahka
Lotta-Elina Pässilä
Agda Mustakari
Tammy Lehtisalo
Matias Hirvikangas
Josefiina Alhola
Haarald Mikkola
Atte Soppela
Reeta Siltanen
Uni Simonsuuri
Teena Selkälä
Klaara Sinikantele
Meritta Reini
Karim Komulainen
Sanna-Liisi Talola
Carlo Kutila
Piitu Annila
Sonia Kaarna
Romeo Lauronen
Benjamin Frändilä
Seikku Isteri
Shakira Kovero
Jani-Jukka Hiesu
Walentin Komero
Aki-Santeri Hynynen
Penna Nykänen
Reimi Rokko
Atro Haponen
Sisko Luomala
Henriika Bräysy
Kirsikka Herala
Fatima Rytsä
Lars-Åke Heikkilä
Cathrin Alaoja
Irja-Liisa Turpeinen
Sanna-Marja Salmelainen
Hilda Laavi
Karita Tyrninen
Karr Aarre
Nina-Maaria Prökkinen
Lottastina Vakkala
Soija Niinimaa
Louise Iisakkila
Marisanna Haapasalo
Sesilia Kankaanpää
Raita Koivunen
Gilbert Viertorinta
Angelika Viinikka
James Helmelä
Una Ääninen
Saska Tyrninen
Ottiilia Ahtio
Elvira Helstelä
Paul Ervola
Voldemar Mustakari
Päivi-Sisko Harjula
Hertta Haikala
Tiija Maksa
Riitta-Kaisa Hietapuro
Marius Hoikkala
Kalevi Lapinniemi
Catrine Markkunen
Tyyne Karjalainen
Merja Vahanen
Reetta Ruponen
Bernhard Saarenpää
Menno Erkheikki
Roswita Mato
Hemmikki Paavola
Pave Tuolisto
Riikka Nurminen
Laimi Virkkula
Samia Ruonansuu
Kaarina Torkkeli
Waldemar Niskala
Bengt Kyyrö
Jarkki Klemetti
Lalli Paasonen
Merja Ankkala
Suvi-Maari Nousiainen
Selene Kaikunen
Nyyrikki Markuksela
Antti-Ville Sarjula
Jeremia Häkkilä
Tetta Kovalainen
Jarmo Hanhela
Maximos Ronni
Jertta Jokiaho
Iina Rekomaa
Meeri Simula
Tomas Hirviniemi
Maijaliisa Auvinen
Meri Rintamäki
Velipekka Sinikantele
Moriz Kortessuo
Ferdinand Välimaa
Tomio Katajamäki
Saku Alhola
Barita Pyyhkälä
Pepi Avonius
Reetta Prökkinen
Timoteus Rinne
Vieno Savi
Annariina Hiekkaharju
Alisa Huovila
Viivu Nissi
Tenna Ruonansuu
Junnu Härmä
Lumikirsikka Ikkala
Ertta Jutila
Aleksanteri Finni
Leena Pakkala
Sera Suo
Urpo-Olavi Nissilä
Saku-Petteri Rasiranta
Jean Merelä
Estella Nissi
Dionne Kamari
Aada-Maria Kukri
Aimo Rekomaa
Stephanie Eurola
Vivikka Kosonen
Christoph Kunnasluoto
Anna-Karin Lippojoki
Jirka Ilvonen
Jonathan Ämmälä
Jari-Juhani Iisakkila
Torgny Ryti
Anttijussi Jaakkimainen
Andrei Raitanen
Liina Arhinmäki
Julian Huuhko
Elga Rae
Saana-Maarit Norja
Seidi Ellilä
Kirsimaria Vanhanen
Hilta Malto
Kirsimarja Vuorensola
Kalle Pohjus
Tonja Tapio
Ulpukka Rautio
Anna-Reeta Kähönen
Esa Palonen
Katja Nevala
Jerna Alanko
Naemi Rikkonen
Marjele Einonen
Luukas Kallasvuo
Carl-Eric Kopra
Pirjo-Riitta Uusimaa
Lotta-Sofia Ernala
Terhi-Marika Honka
Mikki Muhonen
Ken Arhio
Leonard Juutilainen
Paloma Saarijärvi
Hellin Aho
Vivien Viljakkala
Marjasirkka Wiskari
Aleksaana Pönniä
Sirkka-Liisa Katajamäki
Antton Natunen
Viira Siivonen
Melissa Jauho
Eriika Rekola
Arma Tola
Marlene Aapalahti
Anna-Emilia Haukka
Aliina Matias
Absalom Saikkonen
Jan-Markus Pajarinen
Tyyni Saraste
Noora-Sofia Aavikkola
Tuuli-Maria Helinen
Karri Karpo
Ann-Maj Mutanen
Christer Iivanainen
Cecily Leppälä
Naimi Nisso
Alli Kuula
Arttu Asu
Jammu Halinen
Klara Turkia
Piatta Kuoppamäki
Alvin Alajärvi
Arto Hietala
Jani Pohjoinen
Mauna Susi
Salja Ronni
Taiju Enola
Michelle Pyysalo
Teija Porkkala
Werner Kaukovaara
Sailo Haverinen
Venne Kotilainen
Samson Silli
Natja Hirvelä
Valdo Seurala
Vilppo Liski
Michelle Vahasalo
Johannes-Mikael Jaatinen
Nicholas Taalikka
Roosa-Maria Ikävalko
Carla Helminen
Margrethe Lassinen
Eerikki Pekkala
Nana Markuksela
Jenita Lampola
Salome Kalvo
Lorenz Kortesmäki
Anne Mujunen
Jenni-Maria Halmelahti
Saija-Liisa Yläjoki
Kreetta Partapuoli
Iippo Silta
Kajsa Miihkinen
Bridget Selkälä
Turo Rekomaa
Selene Koukkula
Riha Koskelo
Riko Aapalahti
Ollimatti Ukkola
Ville-Pekka Sairanen
Laine Helovirta
Frederik Harkki
Ann-Maria Peltomaa
Freya Piirainen
Inga Turtinen
Galina Kuitunen
Teljo Kovero
Björn-Erik Rytsä
Janette Hakula
Hannika Oravala
Kössi Sillanpää
Valde Pruikkonen
Alf Maahinen
Anjuli Parvo
Raila Eskola
Eben Hurskainen
Owe Ratia
Ansio Ryyttäri
Adolf Veijonen
Sven Siilasmaa
Orvar Tappo
Akusta Tattari
Marikki Lyhykäinen
Anerva Marila
Arho Ensiö
Matilda Arhinmäki
Greger Kairamo
Ossi-Petteri Päätiläinen
Jussi-Antti Salminen
Ann-Maria Ylhäinen
Saania Matikka
Mari-Liina Raitio
Unelma Pussinen
Iisa Kärmeniemi
Elis Ruusula
Edvart Heiskari
Dag Ruskeala
Östen Erkkinen
Tuira Saanila
Gustava Ervola
Mirko Rampa
Susu Joona
Tore Niinimaa
Ville-Hermanni Kokki
Eric Lintula
Minna-Maija Vierikko
Matts-Göran Hyvönen
Ekku Nykänen
Väinö-Oskari Roukala
Sallamaaria Ääninen
Seeni Nikula
Helvi Arvo
Rebecca Keinonen
Laura-Eliisa Lallo
Niko-Pekka Vala
Pedro Unto
Elma Kaista
Kukka-Maria Ravattinen
Sivina Eerikäinen
Uuti Markkola
Gustaava Tyrni
Impi Porola
Ulla-Maija Tornila
Eija Kilpiä
Heta Hillo
Anne-Maija Yijälä
Tomo Harjunpää
Dionne Ruoppila
Jirka Ratia
Katri-Maria Uusitalo
Patricia Pelttari
Tiina-Marja Karhula
Taisa Suikkala
Sirena Vuorikoski
Christel Lautanen
Henriika Lätti
Nikole Harjulampi
Kauko Hyötyläinen
Toini Pärnänen
Carl-Magnus Kontio
Tupuna Joenväärä
Klas Santanen
Annamaija Savikoski
Olli-Petteri Laine
Sonia Lipsanen
Varpu Riihimäki
Mea Sokura
Nanette Roppo
Miilia Taipale
Raino Kivijärvi
Elle Hovi
Joni-Markus Makkonen
Etna Isohanni
Ivan Heikinjuntti
Saku-Antti Mäntylä
Melisse Katainen
Karin Muje
Greta Kimiläinen
Juuso Vesa
Yrjänä Ravattinen
Tiina-Riitta Järveläinen
Markos Jalola
Ruth-Ritva Nurkka
Carla Väyrynen
Hannu Kainulainen
Ulla-Maria Meriläinen
Lea Pösö
Sorja Pelkonen
Pihla Rampa
Sannakaisa Kniivilä
Reena Natunen
Bodil Niskanen
Meliina Aapalahti
Bror-Erik Happonen
Tor-Björn Porkkala
Vivien Reijonen
Brigitte Eteläinen
Per-Erik Kouvonen
Turkka Prättälä
Sepe Tanttu
Leanna Ahvonen
Hans-Viktor Pohtamo
Jesse Honkapohja
Vili-Petteri Sokura
Arho Yliannala
Enar Pöysti
Simo-Pekka Mannila
Sheila Järviharju
Frans Muurinen
Friz Kuula
Sami-Kaarlo Vuorio
Satu-Tuutu Ahtonen
Erich Markkola
Raini Pärnänen
Sverker Niemelä
Josiah Ojennus
Jons Pylkkänen
Josua Hirviniemi
Severi Iloniemi
Hannaliisa Ikonen
Jonathan Norjalahti
Torsten Litma
Pauliina Laari
Lina Issakainen
Rauni Jurvala
Owe Rahkala
Henna-Riitta Ranivaara
Eija-Leena Koskela
Peikko Lehtomäki
Konsta Kyyrä
Jyry Kangaskorte
Noora-Maria Sorakangas
Sinikukka Saikko
Inna Frändilä
Paulina Mutikainen
Marlene Peltomaa
Bo-Gunnar Mäkäläinen
Carl-Eric Turunen
Lisette Rantala
Hilja Harri
Carl-Erik Helismaa
Ragnhild Parjanen
Anne-Carita Sini
Konstantin Tamminen
Jupiter Tola
Jeremy Liimatta
Lyylia Pohjus
Kamu Ahto
Sarina Aronen
Elga Junttila
Nenna Tukiainen
Sten-Erik Pentti
Ivar Mäkäräinen
Esa-Juhani Pärnänen
Sigurd Varis
Semi Ellinen
Irena Virkkula
Aleksei Lohkare
Etta Pöysä
Nellaleena Mansikkamaa
Marja-Berit Jompero
Georgius Enkki
Magnus Pajakka
Hessu Krapula
Sirkku Karjula
Lena Erkheikki
Liz Karjula
Simon Hammas
Liisa-Maria Ranta
Anna-Maja Prättälä
Ake Issakainen
Bella Pystynen
Marga Jalonen
Liinu Laikka
Gunhild Ryysyläinen
Eeva-Riitta Vasara
Joona-Mikko Hentunen
Ricke Poronen
Friedrich Kujala
Zacharias Sillanpää
Anne-Maarit Jinni
Cherry Herranen
Gunnar Ainola
Sirpi Äyhönen
Isko Näveri
Aaro Kortela
Titus Joru
Lilja Hikipää
Philip Leinonen
Olli-Pekka Myyrä
Cathrine Havula
Aino-Maija Turpeinen
Pilvi-Helinä Pyykkö
Hinder Lampinen
Otto Aakula
Jaakko Paukkonen
Elsa-Maria Einelä
Marjeli Jäppinen
Suvi-Tuulia Teittinen
Heloisa Nurkkala
Hannes Mansikka-aho
Saara-Liisa Kapari
Aliise Rautala
Pirkko Komero
Vera Keinonen
Sasu Tervonen
Annaleena Valo
-- A variation of the LOVE calculator.
-- There are three versions of the actual calculator, they were provided as
-- answers to my question at Quora:
-- http://www.quora.com/How-do-I-sum-numbers-in-lists-by-pairs-until-just-one-pair-is-left
-- To try them out, replace the function call on line 66.

import Data.Char
import System.IO
import Data.List.Split

chars :: String
chars = "PAIRS"

ucChars :: Char -> String -> String
ucChars c x = [toUpper ch | ch <- x, toUpper ch == c]

charCounts :: String -> [String] -> [Int]
charCounts chs list = [length (concat [ucChars ch x | x <- list]) | ch <- chs]

-- Version 1             
getLastPair :: [Int] -> (Int, Int)
getLastPair list | length list < 2  = error "list is too short"
getLastPair list = let
        sumDigits :: Int -> Int
        sumDigits x 
            | x < 10 = x
            | otherwise = sumDigits $ sum $ map digitToInt $ show x

        sumPairs :: [Int] -> [Int]
        sumPairs (x:[]) = []
        sumPairs (x1:x2:xs) = (x1 + x2) : sumPairs (x2:xs)
    in if length list == 2
        then (sumDigits $ head list, sumDigits $ last list)
        else getLastPair $ map sumDigits $ sumPairs list

-- Version 2
-- First: function to add the digits of a number until there is only one
reduceDigits n = case show n of
  [_] -> n
  d -> reduceDigits $ sum $ map (read . (:[])) d
--The full function
lastPair [a,b] = (a,b)
lastPair l = lastPair $ map reduceDigits $ zipWith (+) l (tail l)

-- Version 3
makeLessThan10 :: Int -> Int
makeLessThan10 0 = 0
makeLessThan10 x = let r = x `mod` 9
                   in if r == 0 then 9 else r

getLastPair2 :: [Int] -> (Int, Int)
getLastPair2 []     = error "List is too short"
getLastPair2 [_]    = error "List is too short"
getLastPair2 [x, y] = (makeLessThan10 x, makeLessThan10 y)
getLastPair2 l      = getLastPair . map makeLessThan10 $ sumPairs l
  where sumPairs (x:y:ys) = (x+y) : sumPairs (y:ys)
        sumPairs _        = []

-- End of versions

count :: String -> [String] -> [Int]
count _ [] = []
count chs [x] = []
count chs (x:xs) = [(\(a,b) -> a*10+b) $ lastPair(charCounts chs [x,y]) | y <- xs] ++ count chs xs                 

getMatchingCount :: Int -> String -> [String] -> Int
getMatchingCount x chs lst = length(filter (>=x) (count chs lst))

main :: IO()                             
main = do
  handle <- openFile "pairs_names.txt" ReadMode
  contents <- hGetContents handle
  let names = linesBy (=='\n') contents
  print $ getMatchingCount 99 chars names