Göm menyn

Seminarium 6 - Experimentering

Kapitel som ska ha lästs

Uppgift: Högre ordningens funktioner

Funktionen count ska gå igenom listan och räkna ut hur många av elementen uppfyller det givna predikatet, och därefter returnera detta. Funktionen tar en rak lista samt en predikatfunktion (d.v.s en funktion som tar in någonting, testar det och returnerar True eller False).

Börja med att definiera två predikatfunktioner is_number som returnerar huruvida parametern är ett tal och is_positive som returnerar huruvida parametern är ett positivt tal.

Man kan lösa uppgiften iterativt eller rekursivt. Man ska inte lösa den med hjälp av inbyggda iteratorer.

Här har vi två körexempel:

Uppgift: Listbyggare

Skriv följande listbyggare:

  1. Givet en lista med tal, bygg en ny lista av alla icke-negativa tal
  2. Givet en lista med strängar, bygg en ny lista av teckenkoden för första bokstaven i varje sträng (använd ord-funktionen för att få ut teckenkoden)
  3. Bygg en lista av alla näst minsta tal i underlistorna i en given lista (du kan förutsätta att listan består av underlistor med minst två tal)
  4. Bygg en lista av strängar som endast innehåller 'a' i given lista men byt ut alla 'a':n mot *'
  5. Skapa en lista med alla tal mellan 0 och 100 som är delbara med 3 och 5 men ej delbara med 15
  6. Skapa en 5x5 identitetsmatris (dvs en 2d-lista fyld med nollor men ettor längs ena diagonalen)

Exempel

1: [1, -1, 45.3, 4711, -273.15] => [1, 45.3, 4711]

2: ["Apa", "Banan", "Citron"] => [65, 66, 67]

3: [[17, 4, 8], [9, 14, 2, 7], [33, 14]] => [8, 7, 33]

4: ['apelsin', 'banan', 'citron'] => ['*pelsin', 'b*n*n']

6:


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2016-08-19