《時間之歌》首演樂曲解說:第一樂章(1) 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 4月 17, 2010 這個做為Prologue的樂章,一開始便點出了整曲作品的情調:留白。然而這個留白並不是完全孤寂的(在音樂廳中以休止符做為留白的手段是有些殘忍的),而是讓音響迴盪在演奏廳中。基本上我使用兩種四音音響組合的來回擺盪來象徵時間的走動(或許暗示鐘擺?),並且以此為基礎展開一連串的變化。這兩種音響組合的差異並不是在音組成上的劇烈不同(它們尚且具有兩個共同音C & D);然而由於改變的音是下方的兩個基礎音,因此使得兩種迴盪的音響具有迥異的泛音結構: 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
總譜的思維 5月 13, 2008 在觀察Webern總譜時 我思索著 看著星羅棋布的音符 我想它背後有一個超越的思維 於是將它化為鋼琴可彈奏的版本 整個音樂的構想躍然紙上 雖然操作著音列 變化著各樣樂器及音色 但那綿延不絕的接力念頭 貫穿在樂曲中 一個具有超越性眼光的人 不正像一個作曲家一樣嗎 外人眼中 一片星羅棋布的佈局 在他胸中 早已擁有掌握一切的法則 啊 最上面有一行字是這樣寫的... MEINER TOCHTER CHRISTINE 閱讀完整內容
一段全都是蛋的簡易Java故事化教學例範程式碼 4月 15, 2020 插圖: Alfredobear 因為聽到某熊聊到,在線上程式課程中學到陣列 (Array),而且把它形容成「儲蛋格」(egg storage tray),覺得很有趣,因此瞬間就給了我一個靈感,來寫一小段Java物件與串流的教學範例程式。 類別 (class) 是絕大多數物件導向程式語言 (Object-Oriented Programming Languages) 的基本單元,在物件導向的理論中,class代表了我們所要描述/解決的問題體系中某一實體或概念的抽象結果。 換句話說,因為我們不能把真實的蛋放進數位世界裡(就算做得到也變成另外一回事了),因此針對我們要解決的問題,把蛋「抽象化」(通常是抽取我們要的數據、狀態或是特徵),再加上一些和蛋有關的行為或是處理工作,就成了所謂的class的基本內容,基本的框架是長這樣: class Egg { // data field, status, characteristics... // behaviors, processing tasks... } 那麼想到陣列,也就是儲蛋格(因為太囉唆以下改稱蛋架egg rack),就會想到創建一個集合型態 List ,裡面專門放蛋,像是這樣: List<Egg> eggRack; 從這裡故事就開始了,我開始導入了串流界面相關的功能了……(聽到這會眼神死的人且慢) 首先,空的蛋架很無聊,又沒有蛋可以吃,身為蛋食愛好者當然是無法接受,因此我們需要一個無限供應蛋的串流(輸送帶),源頭裝上一個專門供蛋的供應器 ( Supplier<Egg> )。但大部份時候無限供蛋也可以釀成災難,所以我們需要指定數量限制,例如一百顆就好(!),然後在末端裝上一個集蛋器,這樣就可以做為裝滿蛋的蛋架: eggRack = Stream. generate (Egg:: new ) // 無限供蛋器 . limit ( 100 ) // 限制數量以免釀災 . collect (Collectors. toList ()); // 集蛋器 這裡 Egg::new 其實就是 Supplier 格式: () -> new Egg() 的簡寫,稱做method reference,... 閱讀完整內容
Reply to mkyong - "Java – How to print a Pyramid" 4月 01, 2020 今天來寫點小東西。 雖然從小寫程式,尤其大學時特別喜歡OOP的概念,但後來離開coding很長一段時間,並且剛好錯過了Java的崛起。多年前當我下定決心重拾寫程式的熱愛、並且從零開始學習Java時,mkyong的部落格正是親切地陪伴著我成長的資源之一。 無意間在Twitter上看到格主發的小問題,也是一樣那麼的親切: https://twitter.com/mkyong/status/1237331183827972096 因此我也試著把我的答案寫一寫,當作禮物回贈給他。 有趣的是,愈簡單的問題,似乎愈容易顯現出程式師個人的語法偏好。 謝謝mkyong! package info. muspoe . fun ; import java.util.function.Consumer ; import java.util.function.IntFunction ; import java.util.stream.IntStream ; public class MyPyramids { public static void main (String[] args) { int rows = 10 ; Consumer<IntFunction<String>> pyramidFactory = mapper -> IntStream. rangeClosed ( 1 , rows) . mapToObj (mapper) . forEach (System. out ::println); System. out . println ( "\n1. Half Pyramid\n" ); pyramidFactory. accept ( "*" ::repeat); System. out . println ( "\n2. Full Pyramid\n" ); pyramidFactory. accept (i -... 閱讀完整內容
留言