print("\n\nPrint list\n")

def print_items(*items):
    """
    print each item on a new line
    """
    for item in items:
        print(item)

# Example call
print_items("apple", "banana", "cherry")

print("\n\nPrint details\n")

####

def print_details(**details):
    """
    print the details, formatted nicely
    """
    for key, value in details.items():
        print(f"{key}: {value}")

# Example call
print_details(name="Alice", age=25, city="Olomouc")

print("\n\nReduplication\n")

def IsReduplicated(word):
    """
    return True is a word is reduplicated
    ignore case
    """
    parts = word.split("-")
    if len(parts) == 2 and parts[0].lower() == parts[1].lower():
        return True
    else:
        return False

# Example calls
for word in ["buku-buku", "rumah"]:
    print(f"{word}: {IsReduplicated(word)}")


print("\n\nFind Reduplication\n")
    
def find_redup(words):
    redups = dict()
    for w in words:
        if IsReduplicated(w):
            redups[w.lower()] = redups.get(w.lower(), 0)  +1
    return redups


# from https://arqu3fiq.blogspot.com/2007/12/kumo-no-ito.html

text = """Ini adalah Chi no Ike  di dasar Neraka , tempat 
timbul-tenggelamnya Kandata bersama para pendosa lain . Dilihat 
dari sudut manapun tempat ini gelap pekat . Terkadang , dari balik 
kegelapan , samar-samar terlihat kilauan jaru-jarum dari Bukit 
Jarum yang mengerikan . Kengerian yang muncul tidak terperikan . 
Ditambah lagi suasananya yang senyap bagai dalam kuburan , 
seringali sayup-sayup hanya terdengar suara lenguhan nafas 
para pendosa . Orang-orang yang samapi jatuh ke tempat ini , 
begitu kelelahan oleh berbagai macam siksaan Neraka sampai-sampai 
tidak lagi punya tenaga untuk mengeluarkan rintihan derita . 
Karenanya , tentu sajasi maling besar Kandata pun sesenggukan 
di kubangan darah dalam kolam dan gelagapan persis seperti 
katak sekarat yang tidak bisa berbuat apa-apa ."""


redups=find_redup(text.split())
print(redups) 


print("\n\nInformal\n")

def informal (words):
    infrml = []
    for word in words:
        if IsReduplicated(word):
            ### change to non-reduplicated version
            word = word.split('-')[0] + '2'
        infrml.append(word)
    return infrml

informal_text = informal(text.split())
print(informal_text)



print("\n\nUpdate Inventory\n")

def update_inventory(inventory, *new_items):
    """
    Updates the inventory with new items.

    Returns:
    dict: The updated inventory with the new items and their counts.
    """
    for item in new_items:
        if item in inventory:
            inventory[item] += 1
        else:
            inventory[item] = 1
    return inventory

# Example dictionary and function call
current_inventory = {"apple": 2, "banana": 3}
new_inventory = update_inventory(current_inventory, "apple", "banana", "cherry")
print(new_inventory)