kmmbvnr (kmmbvnr) wrote,
kmmbvnr
kmmbvnr

J, Семисегментный индикатор

Прочитал на linux.org.ru
На сайте http://www.pycontest.net/ происходит соревнование на написание самой короткой python программы, удовлетворяющей условию.

Цель: Самая короткая программа, преобразующая цифры в формат семисегментного индикатора.


Интересно, кто у них победит. А вот мой вариант, вне конкурса, написанный на J.



seg=:7 3$' _ |_| | _||_ | |'
loc=:10 3$(7&#.^:_1)6115893582106107964921726x
seven_seq=:(,"2)@:((1 0 2)&|:)@:{&seg@:{&loc@:(10&#.^:_1)


Ну и если постараться, и плюнуть на читабельность, я думаю еще десяток символов можно будет сэкономить.

Например, если вместо того чтобы сливать вместе результаты для отдельных чисел, фрмировать строчку сразу, то последний глагол можно переписать немножко короче:

seven_seq=:,"2@:{&seg@:(|:@:]{&loc)@:(10&#.^:_1)
Tags: j
Subscribe

  • J Грязный хак.

    Спасибо dr_klm неявно указавшему на эту неожиданную особенность: Вот абсолютно ожидаемое поведение вилки и оператора @ load…

  • J Сумма смежных чисел

    Задача: Найти суммы смежных, двоек, троек и т.д в массиве. Результат отсортировать, по возрастанию. Немного попарившись, и узнав много нового…

  • J маленька задачка.

    При попытке написать на J решение вот этой,задачки, возникла небольшая проблема. Все будет выглядить красиво если умудриться написать implisit…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments