fork download
  1. russia(X):-rchange(X,Z),F="ソビエトロシアでは,~s",format(F,[Z]).
  2.  
  3. rchange(X,Z):-pref(X,Y,[V|W]),pref(W,S,T),append([],S,A1),append(A1,[V],A2),append(A2,Y,A3),append(A3,T,Z).
  4.  
  5. pref([X|Y],[],[X|Y]):-joshi(X),!.
  6. pref([X|Y],[X|W],Z):-pref(Y,W,Z).
  7.  
  8. joshi(X):-eq(X,"が").
  9. joshi(X):-eq(X,"は").
  10. joshi(X):-eq(X,"を").
  11. joshi(X):-eq(X,"に").
  12. joshi(X):-eq(X,"で").
  13. joshi(X):-eq(X,"も").
  14. joshi(X):-eq(X,"へ").
  15.  
  16. eq(X,[X|_]).
  17.  
  18. append([],L,L).
  19. append([E|L1],L2,[E|L]):-append(L1,L2,L).
  20.  
  21.  
Success #stdin #stdout 0.02s 6204KB
stdin
russia("あなたがトイレを流す.").
russia("あなたがブレーキを強く踏む.").
russia("あなたがプログラムを実行する.").
russia("あなたが笑福亭鶴光に下ネタを言わせる.").
russia("あなたがエロ本で興奮する.").
stdout
ソビエトロシアでは,トイレがあなたを流す.ソビエトロシアでは,ブレーキがあなたを強く踏む.ソビエトロシアでは,プログラムがあなたを実行する.ソビエトロシアでは,笑福亭鶴光があなたに下ネタを言わせる.ソビエトロシアでは,エロ本があなたで興奮する.