MCMLXXXVIII=1988 или преобразуем римскую запись числа в нормальную

#АнатомияФункций - List.Zip



Всем привет!

Решил разобрать задачку на преобразование римской записи числа в современную. С точки зрения практического смысла занятие сомнительное, но вообще это неплохое упражнение на списки.

Поэтому код:

let

unroman=(txt)=>[

dct=[I=1,V=5,X=10,L=50,C=100,D=500,M=1000],

lst=Text.ToList(txt),

tr=List.Transform(lst,(x)=>Record.Field(dct,x)),

zip=List.Zip({tr,List.Skip(tr)&{0}}),

tr2=List.Transform(zip,(x)=>if x{0}<x{1} then -x{0} else x{0}),

to = List.Sum(tr2)][to],



from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

to = Table.AddColumn(from,"arab",(r)=>unroman(r[r]))

in

to


Ну а что тут к чему – смотрим на ютубе

Лайк, коммент, подписка приветствуются )))



Надеюсь, было полезно.

Всех благ!

@buchlotnik