LCME Понедельник, 25.09.2017, 05:22
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Для истинных фанатов » OCaml » несколько НУЖНЫХ программ (просты програмки)
несколько НУЖНЫХ программ
froci9rgevkaДата: Суббота, 06.03.2010, 00:03 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline
smile
Прикрепления: derevo.ml(0Kb) · otschet_vremeni.ml(0Kb) · print_list.ml(1Kb) · sort.ml(1Kb) · swap.ml(0Kb)


Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

 
freidomДата: Среда, 10.03.2010, 18:36 | Сообщение # 2
Главный тут
Группа: Администраторы
Сообщений: 273
Репутация: 20
Статус: Offline
Почитайте, это действительно смешно smile
Я плакалъ:
Code
Printf.printf "%s" "["
 
froci9rgevkaДата: Среда, 10.03.2010, 19:18 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline
и чё смешного?
я теперь всегда вместо print_string "" пишу Printf.printf "%s" ""
а вместо print_int b пишу Printf.printf "%d" b !!!
не пойму над чем ты плакалЪ... dry

я просто создаю библиотеку, вот и забиваю все основные программы.


Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

 
freidomДата: Воскресенье, 14.03.2010, 13:59 | Сообщение # 4
Главный тут
Группа: Администраторы
Сообщений: 273
Репутация: 20
Статус: Offline
Ты никогда не думал, что константы можно сразу указывать в первом параметре Printf'а, вместо того, чтобы заставлять функцию лишний раз заниматься подстановкой?
Code
let print_pair x y = Printf.printf "(%d, %d)" x y;; (* распечатка двух чисел как упорядоченной пары *)
let print_pair x y = Printf.printf "%s%d%s%s%d%s" "(" x "," " " y ")"; (* бред *)

Учитывая то, что Printf каждый раз должен пройтись по строке и произвести подстановку, он по определению работает медленно. Лично я использую его только в каких-то сложных случаях с форматированием текста, типа вывода упорядоченной пары. Для обычных же случаев вполне достаточно функций print_string, print_endline, print_newline, print_int, print_float, string_of_bool >> print_string.

И ещё: зачем ты выложил 5 однокилобайтных файлов? Сведи их, пожалуйста, в один, а то пользоваться совершенно невозможно...

 
froci9rgevkaДата: Воскресенье, 14.03.2010, 19:12 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline
как удалять свои сообщения???

Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

Сообщение отредактировал froci9rgevka - Понедельник, 15.03.2010, 22:48
 
froci9rgevkaДата: Воскресенье, 14.03.2010, 19:37 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline
ок, по просьбам... добавил немного новеньких программ и обьединил всё в одно.
Прикрепления: 1325067.ml(4Kb)


Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

 
Jack_WarGunOffДата: Воскресенье, 14.03.2010, 21:37 | Сообщение # 7
Сержант
Группа: Друзья
Сообщений: 34
Репутация: 6
Статус: Offline
Поляк, ты слышал про перенос строки?

Aquila non captat muscas - Орлы не ловят мух
 
freidomДата: Понедельник, 15.03.2010, 01:27 | Сообщение # 8
Главный тут
Группа: Администраторы
Сообщений: 273
Репутация: 20
Статус: Offline
Ага, и заодно про традицию редактировать старые сообщения вместо написания новых...
Отмечу несколько забавных моментов:
Code
if  имеет смысл продолжить then

Code
open List;;
...
(* print *)
open List;;
let primer = [(1.,2.);(2.,3.);(3.,4.)];;

let print_para_list primer =    
    Printf.printf "\n [";
     iter (fun (a,b) ->
print_string "("; print_float a; print_string ",";
                     print_float b; print_string ")"; print_string ";") (primer);
print_string "]";;

Code
let rec printf l =
    Printf.printf "%s" "[";
(match l with
(a,b,c)::ls-> Printf.printf "%s" "("; Printf.printf "%d" (int_of_float a);  Printf.printf "%s" ",";    
                 Printf.printf "%d" (int_of_float b); Printf.printf "%s" ")";  Printf.printf "%s" ";"; printf ls
|[]->Printf.printf "%s" "]" );;

От последних просто ROFL biggrin
Пожалуй, даже напишу, как правильно:
Code
let print_para_list primer =    
    print_string "\n[";
    iter (fun (a,b) -> Printf.printf "(%f,%f);" a b) primer;
    print_string "]";;

Code
let printf l =
    print_string "[";
    List.iter (fun (a, b, c) -> Printf.printf "(%d,%d);" (int_of_float a) (int_of_float b))
    print_string "]" );;

Эффект тот же самый, а насколько код сократился...
 
froci9rgevkaДата: Понедельник, 15.03.2010, 22:45 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline
Это просто копирайт очень древних работ и в то время я уже умел нажимать Ctrl+C и Ctrl+V поэтому всё так громоздко happy
Кстати Дима, я не могу редактировать старые сообщения, время от времени случается такой баг... а также я не понимаю как их удалять...


Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

Сообщение отредактировал froci9rgevka - Понедельник, 15.03.2010, 22:52
 
freidomДата: Понедельник, 15.03.2010, 23:01 | Сообщение # 10
Главный тут
Группа: Администраторы
Сообщений: 273
Репутация: 20
Статус: Offline
Исправил, теперь сообщения можно редактировать в течение 999 дней после их создания cool
И вопрос на миллион: зачем ты создал ещё одну тему, когда есть уже одна такая?
 
froci9rgevkaДата: Четверг, 08.04.2010, 11:41 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 71
Репутация: 1
Статус: Offline

let print_a l =
map (fun (z,x) -> Printf.printf " (%c, [" z; map (fun (a,b) -> Printf.printf "(%d, ["a;
(map (fun y -> Printf.printf "%d;" y) b);Printf.printf "]);") x) l;;
ещё один print


Саня - тащщи! XD

"If you have time to panic, you have time to be doing something productive" © Josh Whipple

You’re standing on your Bridle. Idiot! =)
© Roland “Slim” Simpson

 
Форум » Для истинных фанатов » OCaml » несколько НУЖНЫХ программ (просты програмки)
Страница 1 из 11
Поиск:

Copyright Freidom © 2017 Хостинг от uCoz