LINUX.ORG.RU

Сообщения devnull-physicist

 

Лабораторная на Haskell.

Форум — Development

Развлекался на паре по криптографии освоением Haskell. Граждане, имеющие к нему отношение, гляньте, пожалуйста - может я чушь написал? Насколько грамотен такой подход?

Задачка простенькая - шифр Цезаря. С условиями, чтоб буквы кодировались с учетом регистра, а все, что не буквы - оставалось прежним.


import Char

-- Получить ascii-код начала алфавита для строчных и прописных букв
getDiff x =
	if isLower x
		then ord 'a'
	else if isUpper x
		then ord 'A'
	else 
		0		

-- разбить ascii код на пару чисел: номер в алфавите и ascii-смещение алфавита
splitAscii x =
	(ord x - getDiff x, getDiff x)
	
-- сформировать ascii-символ из пары чисел
formAscii pair =
	chr (fst pair + snd pair)

-- циклический сдвиг на n позиций
cycle_shift n pair = 
	let 
		abc_length = ord 'z' - ord 'a' + 1
	in
		if snd pair == 0
			then pair
		else
			(mod (fst pair+n) abc_length, snd pair)

-- Процедура шифрации/дешифрации
caesar n msg =
	map formAscii $ map (cycle_shift n) $ map splitAscii msg
	

-- врапперы к caesar, они же точки входа
encode n msg =
	caesar n msg
	
decode n msg =
	caesar (-n) msg
devnull-physicist
()

Старый добрый рок

Форум — Talks

Я тут неожиданно обнаружил, что образ старого доброго рока для меня - это Rainbow'ская "All night long". Словно давным давно где-то услышал, а опознать, что же это, не мог. Посоветуйте, пожалуйста, что-нибудь из этого старперовского времени аля Guns'N'Roses и иже с ними. Буду проникаться =)

PS. Сам-то я 86-го, зелёный совсем.

devnull-physicist
()

Посоветуйте open-source проект для поднятия Си-шных скиллов

Форум — Talks

Мне очень хочется набраться опыта Си-шного программирования в каком-нибудь open-source проекте. До сего момента успел написать пару сетевых демонов в учебных целях + плюс мо мелочам.

Подскажите, пожалуйста, куда можно податься. Ато проектов масса, я уже и запутался, что бы такое выбрать, нужное и полезное.

devnull-physicist
()

RSS подписка на новые темы