Clojure: Case
Вместо switch в Clojure используется case. В общем случае case по своим возможностям шире, чем switch в большинстве языков программирования. Его использование в качестве switch, это наиболее простой способ познакомиться с ним:
(let [v 0]
(case v
0 "zero"
1 "one"
2 "two"))
; "zero"Каждая ветка в case описывается значением и тем, что вернется из выражения, если же ни один из случаев не подошел, то записывается только возвращаемое выражение. Например:
(case 6
0 "zero"
1 "one"
2 "two"
"many")
; "many"Задание
Реализуйте функцию humanize-permission, которая принимает на вход символьное обозначение прав доступа в Unix системах, и возвращает текстовое описание.
(humanize-permission "x") ; execute
(humanize-permission "r") ; read
(humanize-permission "w") ; writeПолезное
Clojure: Case
Вместо switch в Clojure используется case. В общем случае case по своим возможностям шире, чем switch в большинстве языков программирования. Его использование в качестве switch, это наиболее простой способ познакомиться с ним:
(let [v 0]
(case v
0 "zero"
1 "one"
2 "two"))
; "zero"Каждая ветка в case описывается значением и тем, что вернется из выражения, если же ни один из случаев не подошел, то записывается только возвращаемое выражение. Например:
(case 6
0 "zero"
1 "one"
2 "two"
"many")
; "many"Задание
Реализуйте функцию humanize-permission, которая принимает на вход символьное обозначение прав доступа в Unix системах, и возвращает текстовое описание.
(humanize-permission "x") ; execute
(humanize-permission "r") ; read
(humanize-permission "w") ; writeПолезное
Ваше упражнение проверяется по этим тестам
(ns case-test
(:require [test-helper :refer [assert-solution]]
[index :refer [humanize-permission]]))
(assert-solution [["x"] ["r"] ["w"]] ["execute" "read" "write"] humanize-permission)Решение учителя откроется через:
20:00
