iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
Modern Web

clojure 刷刷鍋系列 第 1

Clojure 肉片 -第 1 塊

  • 分享至 

  • xImage
  •  

練習 Clojure 基本語法,邊涮邊品嚐,理解它 data 的美味(?)

【學習】

  1. (= (mod base factor) 0) 本身就已經會回傳 true / false,真的不用再搞笑多包一層 if 判斷
  2. 多學到 clojure 世界有 zero? 的 function

【今日湯底】

This function should test if the factor is a factor of base.
Return true if it is a factor or false if it is not.

測試 factor 是否為 base 的因子(ex. 2 是 6 的因子,4 就不是 6 的因子)

(必須通過以下測試)

(ns kata.check-for-factor.test
  (:require [kata.check-for-factor :refer :all]
            [clojure.test :refer :all]))
(defn tester [base factor exp]
  (testing (str "(check-for-factor " base " " factor ")")
    (is (= (check-for-factor base factor) exp))))
(deftest basic-tests
  (tester 10 2 true)
  (tester 63 7 true)
  (tester 2450 5 true)
  (tester 24612 3 true)
  (tester 9 2 false)
  (tester 653 7 false)
  (tester 2453 5 false)
  (tester 24617 3 false))

【我的答案】

(ns kata.check-for-factor)
(defn check-for-factor [base factor]
  (if (= (mod base factor) 0) true false)
)

思路:

每個因數一定都是能被整除的,所以可以用 mod 處理(其實題目也有大方的提示這點XD)

【其他人的答案】

(ns kata.check-for-factor)
(defn check-for-factor [base factor]
  (= (mod base factor) 0)
)
(ns kata.check-for-factor)
(defn check-for-factor [base factor]
  (zero? (mod base factor))
)

下一篇
Clojure 肉片 -第 2 塊
系列文
clojure 刷刷鍋30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

恭喜開賽~~預祝順利完賽 /images/emoticon/emoticon08.gif

sepx6501 iT邦新手 5 級 ‧ 2022-09-15 23:01:57 檢舉

Han 的涮涮鍋好像很香,加油加油~~

我要留言

立即登入留言